Google Cloud IAM と Google SecOps を統合する

このドキュメントでは、 Google Cloud Identity and Access Management を Google Security Operations と統合する方法について説明します。

ユースケース

Google Cloud IAM 統合は、次のユースケースをサポートしています。

  • サービス アカウントのライフサイクル管理の自動化: オンボーディング プロセスとオフボーディング プロセスでサービス アカウントを自動的に作成、有効化、無効化し、必要な場合にのみアクセス権が付与されるようにします。

  • ID インシデントへの迅速な対応: セキュリティ インシデントが発生した場合に、不正使用されたサービス アカウントとロールを直ちに削除または無効にして、クラウド リソースへの不正アクセスを防ぎます。

  • ID ガバナンスとエンリッチメント: Google SecOps のユーザー エンティティに、表示名やプロジェクト ID などの詳細なサービス アカウント メタデータを追加して、調査中にアナリストがすぐにコンテキストを把握できるようにします。

  • ポリシーの監査と適用: アクセス制御ポリシーを取得して監査し、最小権限の原則に沿っていることを確認します。また、不正な変更を修復するために、新しいポリシーをプログラムで設定します。

  • ロールベースのアクセス制御(RBAC)の管理: 組織全体で特定の権限セットを持つカスタム IAM ロールを作成して管理し、クラウド環境へのアクセスをきめ細かく制御します。

始める前に

Google SecOps で Google Cloud IAM 統合を構成する前に、次の前提条件の手順を完了します。

  1. カスタム IAM ロールを作成する: サービス アカウントとロールの管理に必要な特定の権限を持つロールを定義します。

  2. サービス アカウントを作成する: 統合がアクションの実行に使用する ID を作成します。

  3. 認証方法を選択する: 推奨の Workload Identity またはサービス アカウントの JSON キーを選択します。

カスタム IAM ロールを作成して構成する

最小権限の原則を維持するには、次の手順に沿って、この統合に必要な特定の権限のみを含むカスタムロールを作成します。

  1. Google Cloud コンソールで、[IAM と管理] > [ロール] に移動します。

  2. [ロールを作成] をクリックします。

  3. [タイトル]、[説明]、[ID] を指定します。

  4. ロールのリリース段階General Availability に設定します。

  5. [権限を追加] をクリックし、次の特定の権限を追加します。

    • iam.serviceAccounts.list
    • iam.serviceAccounts.create
    • iam.serviceAccounts.get
    • iam.serviceAccounts.getIamPolicy
    • iam.serviceAccounts.setIamPolicy
    • iam.serviceAccounts.disable
    • iam.serviceAccounts.enable
    • iam.serviceAccounts.delete
    • iam.roles.list
    • iam.roles.get
    • iam.roles.create
    • iam.roles.delete
  6. [作成] をクリックします。

サービス アカウントを作成する

この統合では、サービス アカウントを使用して認証を行い、プロジェクト内で IAM アクションを実行します。

サービス アカウントを作成するには、次の操作を行います。

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。

  2. [サービス アカウントを作成] をクリックします。

  3. 名前と説明を入力し、[作成して続行] をクリックします。

  4. [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、前の手順で作成したカスタムロールをこのサービス アカウントに割り当てます。[完了] をクリックします。

認証方法を選択する

Google SecOps は、この統合に対して次の 2 つの認証パスをサポートしています。

  • オプション 1: Workload Identity(推奨): この方法では、サービス アカウントの権限借用を使用して有効期間の短いトークンを使用します。有効期間の長い JSON 鍵が不要になるため、セキュリティが強化されます。

  • オプション 2: サービス アカウント JSON キー: この方法では、静的キーファイルを使用します。これは、環境で Workload Identity が使用できない場合にのみ使用してください。

Workload Identity を使用して認証する(推奨)

Workload Identity を使用するには、作成したサービス アカウントの権限を借用するように Google SecOps インスタンスを承認する必要があります。

  1. Google SecOps で、[コンテンツ ハブ] > [レスポンス統合] に移動します。

  2. [Google Cloud IAM] 統合を選択します。

  3. [Workload Identity Email] フィールドにサービス アカウントのメールアドレスを入力します。

  4. [保存]、[テスト] の順にクリックします。テストは最初は失敗することが想定されます。

  5. 失敗したテストの横にある close_small をクリックして、エラー メッセージを表示します。

  6. エラー メッセージの末尾付近にある固有のメールアドレス(gke-init-python@... または soar-python@... の形式)を検索します。このアドレスをコピーします。

権限の借用を許可する

Google SecOps インスタンスの一意の ID を取得したら、 Google Cloud リソースにアクセスできるように承認する必要があります。この手順により、サービス アカウントの権限借用が有効になり、プラットフォームは静的キーを必要とせずに、有効期間の短いトークンを生成してユーザーに代わって操作できます。

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。

  2. この統合用に作成したサービス アカウントを選択します。

  3. [権限] タブに移動し、[アクセスを許可] をクリックします。

  4. コピーした一意のメールアドレスを [新しいプリンシパル] フィールドに貼り付けます。

  5. サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を割り当てます。[保存] をクリックします。

JSON キーを使用して認証する

環境で Workload Identity を使用できない場合は、サービス アカウントの JSON キーを使用して統合を認証できます。この方法は、静的で有効期間の長いシークレット ファイルを使用して、プラットフォームと Google Cloud リソース間の接続を確立します。

  1. Google Cloud コンソールで、[IAM と管理>サービス アカウント] に移動し、サービス アカウントを選択します。

  2. [キー] タブに移動します。

  3. [鍵を追加] > [新しい鍵を作成] の順にクリックします。

  4. キーのタイプとして [JSON] を選択し、[作成] をクリックします。ファイルがパソコンにダウンロードされます。

  5. JSON ファイルの内容全体をコピーします。

  6. プラットフォームでこの統合を構成するときに、このコンテンツを [Service Account Json File Content] フィールドに貼り付けます。

統合のパラメータ

Google Cloud IAM 統合には、次のパラメータが必要です。

パラメータ 説明
API Root

省略可。

Google Cloud IAM インスタンスのベース URL。

デフォルト値は https://iam.googleapis.com です。

Account Type

省略可。

Google Cloud アカウントのタイプ。

この値は、認証 JSON ファイルの type パラメータに対応します。

デフォルト値は service_account です。

Project ID

省略可。

Google Cloud アカウントのプロジェクト ID。

この値は、認証 JSON ファイルの project_id パラメータに対応します。

Quota Project ID

省略可。

API リクエストを行う際に割り当てと課金に使用されるプロジェクト ID。

Private Key ID

省略可。

Google Cloud アカウントの秘密鍵 ID。

この値は、認証 JSON ファイルの private_key_id パラメータに対応します。

Private Key

省略可。

Google Cloud アカウントの秘密鍵。

この値は、認証 JSON ファイルの private_key パラメータに対応します。

Client Email

省略可。

Google Cloud アカウントのクライアント メール。

この値は、認証 JSON ファイルの client_email パラメータに対応します。

Client ID

省略可。

Google Cloud アカウントのクライアント ID。

この値は、認証 JSON ファイルの client_id パラメータに対応します。

Auth URI

省略可。

Google Cloud アカウントの認証 URI。

この値は、認証 JSON ファイルの auth_uri パラメータに対応します。

デフォルト値は https://accounts.google.com/o/oauth2/auth です。

Token URI

省略可。

Google Cloud アカウントのトークン URI。

この値は、認証 JSON ファイルの token_uri パラメータに対応します。

デフォルト値は https://oauth2.googleapis.com/token です。

Auth Provider X509 URL

省略可。

認証プロバイダの X.509 証明書の URL。

この値は、認証 JSON ファイルの auth_provider_x509_cert_url パラメータに対応します。

デフォルト値は https://www.googleapis.com/oauth2/v1/certs です。

Client X509 URL

省略可。

クライアント X.509 証明書の URL。

この値は、認証 JSON ファイルの client_x509_cert_url パラメータに対応します。

Organization ID

省略可。

Google Cloud 組織の一意の識別子。

Service Account Json File Content

省略可。

サービス アカウント キーファイルの完全な JSON コンテンツ。

このパラメータを指定すると、個々の接続パラメータ(Private Key IDPrivate Key など)は無視されます。

Workload Identity Email

省略可。

Workload Identity サービス アカウントに関連付けられたメールアドレス。

Verify SSL

省略可。

選択すると、統合は Google Cloud IAM サービスに接続するときに SSL 証明書を検証します。

デフォルトで有効になっています。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応する手動による対策を実行するをご覧ください。

ロールを作成

Identity and Access Management ロールを作成します。

パラメータ

パラメータの表示名 タイプ デフォルト値 必須 説明
役割 ID 文字列 なし 新しく作成された Identity and Access Management ロールのロール ID を指定します。
ロール定義 文字列 なし ロール定義として使用する JSON ポリシー ドキュメントを指定します。

実行

このアクションはエンティティに対しては実行されません。

ロールポリシー JSON の例

{
   "name": "projects/silver-shift-275007/roles/iam_test_role_api",
   "title": "iam_test_role_api",
   "description": "test role",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "BwXBu1RHiPw="
}

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
   "name": "projects/[PROJECT_ID]/roles/[ROLE_NAME]",
   "title": "[ROLE_TITLE]",
   "description": "[ROLE_DESCRIPTION]",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "[ETAG_VALUE]"
}
Case Wall
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • アクションが正常に実行された場合:(is_success=true)

    • Identity and Access Management <roleid> が正常に作成されました。

  • 指定された role_id がすでに存在する場合(is_success =false)

    • 指定されたロール ID<role_id> はすでに存在します。

  • 指定されたロール JSON が無効な場合(is_success =false)

    • 指定されたロール定義 JSON ドキュメント <role json> が無効です。

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「ロールの作成」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

サービス アカウントを作成する

Identity and Access Management サービス アカウントを作成します。

パラメータ

パラメータの表示名 タイプ デフォルト値 必須 説明
サービス アカウント ID 文字列 文字列 作成するサービス アカウント ID を指定します。
サービス アカウントの表示名 文字列 文字列 × 作成するサービス アカウントの表示名を指定します。
サービス アカウントの説明 文字列 文字列 × 作成するサービス アカウントの説明を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
   "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
   "projectId": "PROJECT_ID",
   "uniqueId": "UNIQUE_ID",
   "email": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
   "displayName": "SERVICE_ACCOUNT_DISPLAY_NAME",
   "etag": "ETAG_VALUE",
   "description": "SERVICE_ACCOUNT_DESCRIPTION",
   "oauth2ClientId": "UNIQUE_ID"
}
Case Wall
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • アクションが正常に実行された場合:(is_success=true)

    • Google Cloud Service Account was created successfully <一意の ID>。
  • 指定されたサービス アカウントがすでに存在するため、アクションの実行に失敗した場合(is_success =false)

    • 指定されたサービス アカウント <一意の ID> はすでに存在します。

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「サービス アカウントの作成」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

ロールを削除

Identity and Access Management ロールを削除します。

パラメータ

パラメータの表示名 タイプ デフォルト値 必須 説明
役割 ID 文字列 なし 新しく作成された Identity and Access Management ロールのロール ID を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
   "name": "projects/[PROJECT_ID]/roles/[ROLE_NAME]",
   "title": "[ROLE_TITLE]",
   "description": "[ROLE_DESCRIPTION]",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "[ETAG_VALUE]",
   "deleted": true
}
Case Wall
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • アクションが正常に実行された場合:(is_success=true)

    • Identity and Access Management <roleid> を削除しました。

  • 指定された role_id が存在しない場合(is_success =false)

    • 指定されたロール ID<role_id> が存在しません。

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「ロールの削除」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

サービス アカウントの削除

サービス アカウントを削除します。このアクションでは、Identity and Access Management サービス アカウントのメールアドレスが Google SecOps ユーザー エンティティとして必要です。

実行

このアクションはユーザー エンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 成功し、指定されたエンティティの少なくとも 1 つが削除された場合:「次のサービス アカウントが正常に削除されました: {0}」.format([entity.Identifier])。

  • 指定されたエンティティをすべて削除できない場合:「削除されたサービス アカウントはありません。」

  • Identity and Access Management で特定のエンティティを削除するデータが見つからない場合: 「アクションは、指定されたエンティティに一致する Identity and Access Management を見つけることができませんでした: {0}」.format([entity.identifier])

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「サービス アカウントの削除」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

サービス アカウントを無効にする

サービス アカウントを無効にします。このアクションでは、Identity and Access Management サービス アカウントのメールアドレスが Google SecOps ユーザー エンティティとして必要です。

実行

このアクションはユーザー エンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 指定されたエンティティの少なくとも 1 つが成功した場合: 「次のサービス アカウントが正常に無効になりました: {0}」.format([entity.Identifier])。

  • 指定されたエンティティをすべて無効にできない場合: 「無効になったサービス アカウントはありません。」

  • Google Cloud Identity and Access Management で特定のエンティティを無効にするデータが見つからない場合: 「アクションは、指定されたエンティティと一致する Google Cloud Identity and Access Management を見つけることができませんでした: {0}」.format([entity.identifier])

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合: 「アクション「サービス アカウントの無効化」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

サービス アカウントを有効にする

サービス アカウントを有効にします。このアクションでは、Identity and Access Management サービス アカウントのメールアドレスが Google SecOps ユーザー エンティティとして必要です。

実行

このアクションはユーザー エンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 指定されたエンティティの少なくとも 1 つが成功した場合:「次のサービス アカウントが正常に有効になりました: {0}」.format([entity.Identifier])。

  • 指定されたエンティティをすべて有効にできない場合:「有効になったサービス アカウントはありません。」

  • Identity and Access Management で特定のエンティティを有効にするデータが見つからない場合: 「アクションは、指定されたエンティティに対して Identity and Access Management で一致するデータを見つけることができませんでした: {0}」.format([entity.identifier])

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「サービス アカウントの有効化」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

エンティティの拡充

Identity and Access Management のサービス アカウント情報で Google SecOps ユーザー エンティティを拡充します。このアクションでは、Identity and Access Management サービス アカウントのメールアドレスが Google SecOps ユーザー エンティティとして必要です。

実行

このアクションはユーザー エンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
  "name": "projects/[PROJECT_ID]/serviceAccounts/[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
  "projectId": "[PROJECT_ID]",
  "uniqueId": "[UNIQUE_ID]",
  "email": "[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
  "displayName": "[DISPLAY_NAME]",
  "etag": "[ETAG]",
  "description": "[DESCRIPTION]",
  "oauth2ClientId": "[UNIQUE_ID]"
}
エンティティ拡充
拡充フィールド名 ロジック - 適用するタイミング
Google_IAM_name
Google_IAM_project_id ..
Google_IAM_unique_id
Google_IAM_email
Google_IAM_display_name
Google_IAM_description
Google_IAM_oauth2_client_id
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 成功し、指定されたエンティティの少なくとも 1 つが拡充された場合:「エンティティが正常に拡充されました: {0}」.format([entity.Identifier])。
  • 指定されたエンティティをすべて拡充できない場合:「拡充されたエンティティはありません」
  • Identity and Access Management で特定のエンティティを拡充するデータが見つからない場合:「アクションは、指定されたエンティティを拡充するために一致する Identity and Access Management を見つけることができませんでした: {0}」.format([entity.identifier])

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「エンティティの拡充」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般
テーブル(拡充)

テーブル名: {entity} 拡充テーブル

列: Key、Value

エンティティ

サービス アカウントの IAM ポリシーを取得する

サービス アカウントのアクセス制御ポリシーを取得します。このアクションは、Identity and Access Management サービス アカウントのメールアドレスを Google SecOps ユーザー エンティティとして想定しています。サービス アカウントにポリシーが割り当てられていない場合、ポリシーは空になることがあります。

実行

このアクションはユーザー エンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
   "version": 1,
   "etag": "[ETAG_VALUE]",
   "bindings": [
       {
           "role": "roles/iam.securityReviewer",
           "members": [
               "user:[USER_EMAIL]"
           ]
       }
   ]
}
Case Wall
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • アクションが正常に実行された場合:(is_success=true)

    • 「次の Google Cloud サービス アカウントの Identity and Access Management ポリシーが正常に取得されました: <メール ID 1、メール ID 2...>
  • アクションでエンティティの情報が見つからなかった場合(たとえば、Google Identity and Access Management に存在しないメールアドレスが指定された場合):

    • 次の Google Cloud サービス アカウントの Identity and Access Management ポリシーを取得できませんでした: <メール ID 1、メール ID 2 ..>
  • 指定されたすべてのエンティティの Identity and Access Management ポリシーが見つからない場合: 「指定されたエンティティの Identity and Access Management ポリシーが見つかりませんでした。」

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「サービス アカウントの IAM ポリシーの取得」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

ロールを一覧表示する

指定された検索条件に基づいて Identity and Access Management ロールを一覧表示します。Google SecOps エンティティではアクションが機能しません。

パラメータ

パラメータの表示名 タイプ デフォルト値 必須 説明
表示 DDL 基本 × ロール情報を返すために使用するビューを指定します。
返される最大行数 整数 50 × アクションが返すロールの数を指定します。
プロジェクトのカスタムロールのみを一覧表示しますか? チェックボックス オフ × 有効にすると、アクションは現在のプロジェクト ID に定義されているカスタムロールのみを返します。
削除済みを表示 チェックボックス オフ × 有効にすると、削除されたロールも返されます。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
   "roles": [
       {
           "name": "roles/accessapproval.approver",
           "title": "Access Approval Approver",
           "description": "Ability to view or act on access approval requests and view configuration",
           "stage": "BETA",
           "etag": "[ETAG_VALUE]"
       },
       {
           "name": "roles/accessapproval.configEditor",
           "title": "Access Approval Config Editor",
           "description": "Ability update the Access Approval configuration",
           "stage": "BETA",
           "etag": "[ETAG_VALUE]"
       }
   ]
}
Case Wall
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • ロールが正常に一覧表示された場合(is_success = true):「Identity and Access Management ロールが正常に取得されました。」

  • 使用可能な値がない場合(is_success = false):「指定された入力パラメータに対してロールが返されませんでした。」

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、無効なゾーン、SDK エラーの場合::「アクション「ロールの一覧表示」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般
テーブル

テーブル名: Google Cloud IAM ロール

テーブル列:

ロール名

ロールのタイトル

役割の説明

Role Stage

ロールの ETag

ロールの権限

全般

サービス アカウントの一覧表示

指定された検索条件に基づいて Identity and Access Management サービス アカウントを一覧表示します。Google SecOps エンティティではアクションが機能しません。

パラメータ

パラメータの表示名 タイプ デフォルト値 必須 説明
サービス アカウントの表示名 文字列 なし × 返すサービス アカウントの表示名を指定します。このパラメータは、カンマ区切りの文字列として複数の値を受け入れます。
サービス アカウントのメール 文字列 なし × 返すサービス アカウントのメールアドレスを指定します。このパラメータは、カンマ区切りの文字列として複数の値を受け入れます。
返される最大行数 整数 50 × アクションが返すロールの数を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
  "accounts": [
    {
      "name": "projects/[PROJECT_ID]/serviceAccounts/[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
      "projectId": "[PROJECT_ID]",
      "uniqueId": "[UNIQUE_ID]",
      "email": "[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
      "displayName": "[DISPLAY_NAME]",
      "etag": "[ETAG_VALUE]",
      "description": "[SERVICE_ACCOUNT_DESCRIPTION]",
      "oauth2ClientId": "[UNIQUE_ID]"
    }
  ]
}
Case Wall
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • サービス アカウントが正常に一覧表示された場合(is_success = true):
    「サービス アカウントが正常に取得されました。」 Google Cloud
  • 使用可能な値がない場合(is_success = false):「指定された入力パラメータに対してサービス アカウントが返されませんでした。」

アクションが失敗し、ハンドブックの実行が停止します。

致命的なエラー、無効なゾーン、SDK エラー(認証情報が間違っている、サーバーへの接続がないなど)の場合::「アクション「サービス アカウントの一覧表示」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般
テーブル

テーブル名: Google Cloud Service Accounts

テーブル列:

サービス アカウント名

サービス アカウントの一意の ID

サービス アカウントのメール

サービス アカウントの表示名

サービス アカウントの説明

サービス アカウントの OAuth2 クライアント ID

全般

Ping

Google Security Operations の [Marketplace] タブの統合構成ページで提供されているパラメータを使用して、Identity and Access Management サービスへの接続をテストします。

パラメータ

なし

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
ケースウォール
結果のタイプ 値 / 説明 タイプ
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 成功した場合:「指定された接続パラメータを使用して Identity and Access Management サービスに正常に接続されました。」

アクションが失敗し、ハンドブックの実行が停止します。

  • 認証情報の誤りや接続の切断などの重大なエラーの場合:「Identity and Access Management サービスに接続できませんでした。エラーは {0}」.format(exception.stacktrace)
全般

サービス アカウント キーのローテーション

サービス アカウント キーのローテーション アクションを使用して、サービス アカウントに関連付けられたユーザー管理のキーをローテーションします。ローテーション中は、既存の鍵がすべて削除され、新しい鍵が作成されます。

このアクションは、次の Google SecOps エンティティに対して実行されます。

  • Deployment

  • Username

アクション入力

[サービス アカウント キーをローテーションする] アクションには、次のパラメータが必要です。

パラメータ 説明
Service Account

省略可。

キーをローテーションするサービス アカウントのカンマ区切りのリスト。

このパラメータはエンティティとともに機能します。指定された場合、アクションは、アクションの範囲で識別されたサービス アカウント エンティティに加えて、これらの特定のアカウントのキーをローテーションします。

アクションの出力

[サービス アカウント キーをローテーションする] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果

次の例は、[サービス アカウント キーをローテーションする] アクションを使用したときに受信した JSON 結果の出力です。

[
    {
       "Entity": "123",
       "EntityResult": {
               "name": "projects/example-project/serviceAccounts/sample-sa@example-project.iam.gserviceaccount.com/keys/b333bbda7826af991a4d4cc4e3f83325103580ca",
               "validAfterTime": "2023-09-12T11:02:31Z",
               "validBeforeTime": "9999-12-31T23:59:59Z",
               "keyAlgorithm": "KEY_ALG_RSA_2048",
               "keyOrigin": "GOOGLE_PROVIDED",
               "keyType": "USER_MANAGED"
        }
    },
    {
       "Entity": "1234",
       "EntityResult": {
               "name": "projects/example-project/serviceAccounts/sample-sa@example-project.iam.gserviceaccount.com/keys/b333bbda7826af991a4d4cc4e3f83325103580ca",
               "validAfterTime": "2023-09-12T11:02:31Z",
               "validBeforeTime": "9999-12-31T23:59:59Z",
               "keyAlgorithm": "KEY_ALG_RSA_2048",
               "keyOrigin": "GOOGLE_PROVIDED",
               "keyType": "USER_MANAGED"
        }
    }
]
出力メッセージ

[サービス アカウント キーをローテーション] アクションは、次の出力メッセージを返すことがあります。

出力メッセージ メッセージの説明

Successfully rotated keys for service account SERVICE_ACCOUNT_EMAIL in Google Cloud IAM.

The following service accounts were not found in Google Cloud IAM: SERVICE_ACCOUNT_KEYS.

None of the provided service accounts were found in Google Cloud IAM.

アクションが成功しました。
Error executing action "Rotate Service Account Keys". Reason: ERROR_REASON

操作に失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、[Rotate Service Account Keys] アクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success true または false

サービス アカウントの IAM ポリシーを設定する

指定したサービス アカウントにアクセス制御ポリシーを設定します。Action は、Identity and Access Management サービス アカウントのメールアドレスを Google SecOps アカウント エンティティとして想定しています。アクションで指定されたポリシーは、既存のポリシーをすべて置き換えます。

パラメータ

パラメータの表示名 タイプ デフォルト値 必須 説明
ポリシー 文字列 なし サービス アカウントに設定する JSON ポリシードキュメントを指定します。

実行

このアクションはアカウント エンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success is_success=False
is_success is_success=True
JSON の結果
{
   "version": 1,
   "etag": "[ETAG_VALUE]",
   "bindings": [
       {
           "role": "roles/iam.securityReviewer",
           "members": [
               "user:[USER_EMAIL]"
           ]
       }
   ]
}
Case Wall
結果のタイプ 値 / 説明 タイプ
出力メッセージ*

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

  • 一部が成功した場合(is_success=True):

    • 次の Google Cloud サービス アカウントの Identity and Access Management ポリシーが正常に設定されました: <メール ID1, ...>

  • 一部が失敗した場合:

    • 次の Google Cloud サービス アカウントの Identity and Access Management ポリシーを設定できませんでした: <メール ID1, ....>

  • すべて失敗した場合:

    • サービス アカウントの Identity and Access Management ポリシーが設定されていません。

  • 指定されたポリシー JSON が無効な場合(is_success =false)

    • 指定されたポリシー JSON ドキュメント <policy> が無効です。

アクションが失敗し、ハンドブックの実行が停止します。

間違った認証情報、サーバーへの接続なし、その他など、致命的なエラー、SDK エラーの場合::「アクション「サービス アカウントの IAM ポリシーの設定」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。