이 가이드에서는 Security Command Center API를 사용하여 발견 항목을 생성할 소스를 만드는 방법을 안내합니다. 소스를 추가하면 Security Command Center는 적절한 소스를 만들어 관련 권한을 할당합니다.
Security Command Center의 IAM 역할은 조직, 폴더, 프로젝트 수준에서 부여할 수 있습니다. 발견 항목, 애셋, 보안 소스를 보거나 수정하거나 만들거나 업데이트할 수 있는 기능은 액세스 권한이 부여된 수준에 따라 다릅니다. Security Command Center 역할에 대해 자세히 알아보려면 액세스 제어를 참조하세요.
시작하기 전에
소스를 설정하기 전에 서비스 계정을 설정해야 합니다. Security Command Center API를 직접 호출하는 경우 Bearer 토큰을 가져옵니다.
소스 만들기
이 예시에서는 Security Command Center 대시보드에서 사용되는 특정 표시 이름과 설명이 있는 소스를 만드는 방법을 보여줍니다.
서버가 자동으로 ID를 소스에 할당합니다.
Python
Java
Go
Node.js
API
API에서 organizations.sources.create
메서드에 요청을 수행합니다. 요청 본문에 소스의 인스턴스가 포함됩니다.
POST https://securitycenter.googleapis.com/API_VERSION/organizations/ORGANIZATION_ID/sources -d { "name": "SOURCE_NAME", "description": "SOURCE_DESCRIPTION", "displayName": "DISPLAY_NAME" }
다음을 바꿉니다.
- API_VERSION: 타겟이 되는 API 버전입니다.
- ORGANIZATION_ID: 조직 ID입니다.
- SOURCE_NAME: 소스 이름입니다.
- SOURCE_DESCRIPTION: 소스에 대한 설명입니다(최대 1,024자).
- DISPLAY_NAME: 소스의 표시 이름입니다(1~64자).
소스는 발견 항목이 생성될 때까지 Security Command Center 대시보드에 표시되지 않습니다. 특정 소스 가져오기의 안내에 따라 발견 항목이 생성되었는지 확인할 수 있습니다.
소스 업데이트
소스가 생성된 후 소스의 표시 이름 및 설명을 업데이트할 수 있습니다. 필드 마스크를 사용하여 하나의 필드만 업데이트할 수도 있습니다. 아래 예시에서는 필드 마스크를 사용하여 표시 이름만 업데이트하고 설명은 변경하지 않습니다.
Python
Java
Go
Node.js
API
API에서 organizations.sources.patch
메서드에 요청을 수행합니다. 요청 본문에 소스의 인스턴스가 포함됩니다.
PATCH https://securitycenter.googleapis.com/API_VERSION/organizations/ORGANIZATION_ID/sources/SOURCE_ID?updateMask=displayName -d { "description": "SOURCE_DESCRIPTION", "displayName": "DISPLAY_NAME", }
다음을 바꿉니다.
- API_VERSION: 타겟이 되는 API 버전입니다.
- ORGANIZATION_ID: 조직 ID입니다.
- SOURCE_ID: 소스 ID입니다. 소스 ID 가져오기에 대한 안내는 소스 ID 가져오기를 참조하세요.
- SOURCE_DESCRIPTION: 소스에 대한 설명입니다(최대 1,024자).
- DISPLAY_NAME: 소스의 표시 이름입니다(1~64자).
소스에 IAM 정책 설정
소스를 만든 후 액세스를 허용하도록 ID 및 액세스 관리(IAM) 정책을 업데이트하세요.
Python
Java
Go
Node.js
API
API에서 organizations.sources.setIamPolicy
메서드에 요청을 수행합니다. 요청 본문에는 정책의 인스턴스가 포함됩니다.
POST https://securitycenter.googleapis.com/API_VERSION/organizations/ORGANIZATION_ID/sources/SOURCE_ID:setIamPolicy -d { "version": POLICY_FORMAT, "bindings": [ { "role": IAM_ROLE, "members": [ IAM_EMAIL ] } ], "auditConfigs": [ { "service": "SERVICE", "auditLogConfigs": [ { "logType": "LOG_PERMISSION", "exemptedMembers": [ "user:EXEMPT_EMAIL" ] } ] } ], "etag": ETAG }
다음을 바꿉니다.
- API_VERSION: 타겟이 되는 API 버전입니다.
- ORGANIZATION_ID: 조직 ID입니다.
- SOURCE_ID: 소스 ID입니다. 소스 ID를 가져오는 방법은 특정 소스 가져오기를 참조하세요.
- POLICY_FORMAT: 0, 1, 3 중 정책 형식을 지정하세요.
- IAM_ROLE: 권한을 부여 중인 IAM 역할입니다.
- IAM_USER_EMAIL: 역할을 부여할 사용자의 이메일 주소입니다.
- SERVICE: 감사 로깅을 사용 설정할 Google Cloud 서비스입니다.
- LOG_PERMISSION: 부여할 로그 권한
ADMIN_READ
,DATA_READ
, 또는DATA_WRITE
입니다. - EXEMPT_EMAIL: 권한 유형을 로깅하지 않는 ID입니다.
- ETAG:
getIamPolicy
로의 응답에 반환되는 문자열입니다. 동시에 발생한 여러 정책 업데이트가 서로를 덮어쓰지 않도록 방지하려면 이 문자열을 포함해야 합니다.
특정 소스 가져오기
소스의 절대적 리소스 이름으로 Security Command Center를 쿼리하여 소스가 적절하게 생성 또는 업데이트되었는지 확인합니다.
gcloud
# Note: For GCloud you can use either full resource name or just ID Flags. # In this example, we are using ID Flags. # ORGANIZATION_ID=12344321 # SOURCE_ID=43211234 gcloud scc sources describe $ORGANIZATION_ID --source=$SOURCE_ID
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc sources describe --help
Python
Java
Go
Node.js
API
API에서 organizations.sources.get
메서드에 요청을 수행합니다. 요청 본문이 비어 있습니다.
GET https://securitycenter.googleapis.com/API_VERSION/organizations/ORGANIZATION_ID/sources/SOURCE_ID
다음을 바꿉니다.
- API_VERSION: 타겟이 되는 API 버전입니다.
- ORGANIZATION_ID: 조직 ID입니다.
- SOURCE_ID: 소스 ID입니다.
소스 나열
Security Command Center를 사용하면 특정 소스를 나열하고 현재 조직에서 사용할 수 있는 모든 소스를 나열할 수 있습니다.
Python
Java
Go
Node.js
API
API에서 organizations.sources.list
메서드에 요청을 수행합니다. 요청 본문이 비어 있습니다.
GET https://securitycenter.googleapis.com/API_VERSION/organizations/ORGANIZATION_ID/sources
다음을 바꿉니다.
- API_VERSION: 타겟이 되는 API 버전입니다.
- ORGANIZATION_ID: 조직 ID입니다.
IAM 정책 가져오기
Security Command Center에서 현재 IAM 정책 데이터를 가져와 소스에 적절한 IAM 정책이 적용되었는지 확인할 수 있습니다.
Python
Java
Go
Node.js
API
API에서 organizations.sources.getIamPolicy
메서드에 요청을 수행합니다. 요청 본문에 GetIamPolicyRequest
요청 메시지가 포함되어 있습니다. options
객체는 선택사항이며 정책 형식을 요청하기 위해 사용됩니다.
GET https://securitycenter.googleapis.com/API_VERSION/organizations/ORGANIZATION_ID/sources/SOURCE_ID:getIamPolicy -d { "resource": "organizations/ORGANIZATION_ID/sources/SOURCE_ID", "options": { "requestedPolicyVersion": POLICY_VERSION } }
다음을 바꿉니다.
- API_VERSION: 타겟이 되는 API 버전입니다.
- ORGANIZATION_ID: 조직 ID입니다.
- SOURCE_ID: 소스 ID입니다. 소스 ID를 가져오는 방법은 특정 소스 가져오기를 참조하세요.
- POLICY_VERSION: 반환할 정책 형식, 0, 1, 또는 3입니다.
다음 단계
SDK를 사용하여 Security Command Center에 액세스 알아보기