このガイドでは、Security Command Center API を使用して検出結果を作成するためのソースを作成する方法について説明します。ソースを追加すると、Security Command Center によって適切なソースが作成され、そのソースに関連する権限が付与されます。
Security Command Center の IAM ロールは、組織レベル、フォルダレベル、またはプロジェクト レベルで付与できます。検出結果、アセット、セキュリティ ソースを表示、編集、作成、更新する権限は、アクセス権が付与されているレベルによって異なります。Security Command Center のロールの詳細については、アクセス制御をご覧ください。
始める前に
ソースを設定する前に、サービス アカウントの設定を行う必要があります。Security Command Center API を直接呼び出している場合は、署名なしトークンを取得します。
ソースの作成
この例は、Security Command Center ダッシュボードで使用される特定の表示名と説明を使用してソースを作成する方法を示しています。
サーバーでソースに自動的に ID が割り当てられます。
Python
Java
Go
Node.js
API
API では、organizations.sources.create
メソッドにリクエストを送信します。リクエストの本文には、Source のインスタンスが含まれます。
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 ダッシュボードにソースは表示されません。特定のソースの取得の手順に沿って、作成されたことを確認できます。
ソースの更新
ソースの表示名と説明は作成後に更新できます。また、フィールド マスクを使用して、更新するフィールドを 1 つのみにすることもできます。次の例では、フィールド マスクを使用して表示名のみを更新し、説明は変更していません。
Python
Java
Go
Node.js
API
API では、organizations.sources.patch
メソッドにリクエストを送信します。リクエストの本文には、Source のインスタンスが含まれます。
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 ポリシーの設定
ソースを作成したら、Identity and Access Management(IAM)ポリシーを許可するように更新します。
Python
Java
Go
Node.js
API
API では、organizations.sources.setIamPolicy
メソッドにリクエストを送信します。リクエストの本文には Policy のインスタンスが含まれます。
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 へのアクセスの詳細を確認する。