IAM を Google SecOps と統合する

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

ユースケース

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

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

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

  • ID ガバナンスと拡充: Google SecOps のユーザー エンティティを、表示名やプロジェクト ID などの詳細なサービス アカウント メタデータで拡充し、調査中にアナリストに即座にコンテキストを提供します。

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

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

始める前に

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

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

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

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

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

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

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

    [ロール] に移動

  2. [addカスタムの役割を作成] をクリックします。

  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. [add サービス アカウントを作成] をクリックします。

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

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

認証方法を選択して構成する

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

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

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

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

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

  1. Google SecOps で、[Content Hub] > [Response Integrations] に移動します。

  2. [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] フィールドにコンテンツを貼り付けます。

統合のパラメータ

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

パラメータ 説明
API Root

省略可。

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 ID や Private Key など)は無視されます。

Workload Identity Email

省略可。

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

Verify SSL

省略可。

選択すると、統合は 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 サービス アカウント <一意の 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 IAM で特定のエンティティを無効にするデータが見つからない場合:「アクションは、指定されたエンティティと一致するものを Google Cloud IAM で見つけることができませんでした: {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 ポリシーを取得できませんでした: <メール ID1、メール ID2 ..>
  • 指定されたすべてのエンティティの 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)

全般
テーブル

テーブル名: IAM ロール

テーブル列:

ロール名

ロールのタイトル

役割の説明

ロールのステージ

ロールの 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 サービス アカウント

テーブル列:

サービス アカウント名

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

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

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

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

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

全般

Ping

Google SecOps Content Hub ページの統合構成ページで提供されるパラメータを使用して、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 IAM.

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

None of the provided service accounts were found in IAM.

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

アクションが失敗しました。

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

スクリプトの結果

次の表に、[サービス アカウント キーをローテーションする] アクションを使用した場合のスクリプト結果の出力値を示します。

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

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

指定したサービス アカウントにアクセス制御ポリシーを設定します。このアクションでは、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 ポリシーが正常に設定されました: <メール ID 1、...>

  • 一部が失敗した場合:

    • 次の 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 のプロフェッショナルから回答を得ることができます。