Security Command Center のエンタープライズ ティアをアマゾン ウェブ サービス(AWS)環境に接続することで、次のことが可能になります。
- AWS 環境でソフトウェアの脆弱性と構成ミスを検出して修正する
- AWS のセキュリティ ポスチャーを作成、管理する
- 公共のインターネットから価値の高い AWS アセットに対する潜在的な攻撃パスを特定する
- AWS リソースのコンプライアンスをさまざまな標準とベンチマークにマッピングする
Security Command Center を AWS に接続すると、セキュリティ運用チームが Google Cloud と AWS 全体の脅威と脆弱性を 1 か所で管理して修正できるようになります。
Security Command Center で AWS 組織をモニタリングするには、Google Cloud サービス エージェントと、モニタリングするリソースにアクセスできる AWS アカウントを使用して接続を構成する必要があります。Security Command Center は、この接続を使用して、定義したすべての AWS アカウントとリージョンでデータを定期的に収集します。
Google Cloud 組織ごとに 1 つの AWS 接続を作成できます。このコネクタは、API 呼び出しを使用して AWS アセットデータを収集します。これらの API 呼び出しにより、AWS の料金が発生する場合があります。
このドキュメントでは、AWS との接続を設定する方法について説明します。接続を設定する際には、以下の構成を行います。
- モニタリングする AWS リソースに直接アクセスできる AWS 内の一連のアカウント。これらのアカウントは、Google Cloud コンソールでコレクタ アカウントと呼ばれます。
- コレクタ アカウントの認証を許可する適切なポリシーとロールを持つ AWS のアカウント。Google Cloud コンソールでは、このアカウントは委任されたアカウントと呼ばれます。委任アカウントとコレクタ アカウントは、同じ AWS 組織に存在しなければなりません。
- 認証のために委任されたアカウントに接続する Google Cloud のサービス エージェント。
- AWS リソースからアセットデータを収集するパイプライン。
- (省略可)Sensitive Data Protection が AWS コンテンツをプロファイリングするための権限。
この接続は、脅威検出のために AWS ログを取り込むことができる Security Command Center の SIEM 機能には適用されません。
以下の図に、この構成を示します。 テナント プロジェクトは、アセットデータ収集パイプライン インスタンスを含む、自動作成されるプロジェクトです。
始める前に
以下のタスクを完了してから、このページの残りのタスクを完了してください。
Security Command Center のエンタープライズ ティアを有効にする
設定ガイドのステップ 1 とステップ 2 を完了して、Security Command Center Enterprise ティアを有効にします。
権限を設定する
AWS コネクタを使用するために必要な権限を取得するには、Cloud Asset オーナー (roles/cloudasset.owner
)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
AWS アカウントを作成する
以下の AWS リソースが作成されていることを確認します。
- 委任アカウントとコレクタの AWS アカウント コンソール用の AWS IAM アクセス権限を持つ AWS IAM ユーザー。
委任アカウントとして使用できる AWS アカウントの AWS アカウント ID。Security Command Center で AWS アカウントを自動的に検出してリソースを検索する場合は、委任アカウントを AWS 組織に接続し、次のいずれかに設定する必要があります。
organization
権限とlist
権限を付与するリソースベースの委任ポリシーを持つ AWS アカウント。ポリシーの例については、例: 組織、OU、アカウント、ポリシーを表示するをご覧ください。
Security Command Center を構成する
Google Cloud コンソールで、Security Command Center の [設定ガイド] ページに移動します。
Security Command Center Enterprise ティアを有効にした組織を選択します。[設定ガイド] ページが開きます。
[ステップ 3: アマゾン ウェブ サービス(AWS)コネクタを設定する] をクリックします。
[委任アカウント ID] に、委任アカウントとして使用できる AWS アカウントの AWS アカウント ID を入力します。
Sensitive Data Protection で AWS データをプロファイリングできるようにするには、[機密データの保護の検出に権限を付与する] を選択したままにします。このオプションを使用すると、コレクタロールの CloudFormation テンプレートに AWS IAM 権限が追加されます。
このオプションによって付与される AWS IAM 権限
s3:GetBucketLocation
s3:ListAllMyBuckets
s3:GetBucketPolicyStatus
s3:ListBucket
s3:GetObject
s3:GetObjectVersion
s3:GetBucketPublicAccessBlock
s3:GetBucketOwnershipControls
s3:GetBucketTagging
iam:ListAttachedRolePolicies
iam:GetPolicy
iam:GetPolicyVersion
iam:ListRolePolicies
iam:GetRolePolicy
ce:GetCostAndUsage
dynamodb:DescribeTableReplicaAutoScaling
identitystore:ListGroupMemberships
identitystore:ListGroups
identitystore:ListUsers
lambda:GetFunction
lambda:GetFunctionConcurrency
logs:ListTagsForResource
s3express:CreateSession
s3express:GetBucketPolicy
s3express:ListAllMyDirectoryBuckets
wafv2:GetIPSet
必要に応じて、[詳細オプション] を確認して編集します。追加のオプションについては、AWS コネクタ構成のカスタマイズをご覧ください。
[続行] をクリックします。[AWS に接続] ページが開きます。
次のいずれかを行います。
- 委任ロールとコレクタロールの CloudFormation テンプレートをダウンロードして確認します。
- 詳細オプションを構成した場合や、デフォルトの AWS ロール名(aws-delegated-role、aws-collector-role、aws-sensitive-data-protection-role など)を変更する必要がある場合は、[AWS アカウントを手動で構成する] を選択します。サービス エージェント ID、委任されたロール名、コレクタロール名、Sensitive Data Protection コレクタロール名をコピーします。
接続の作成後にロール名を変更することはできません。
[作成] はクリックしないでください。代わりに、AWS 環境を構成します。
AWS 環境を構成する
AWS 環境は、次のいずれかの方法で設定できます。
- Security Command Center の構成でダウンロードした CloudFormation テンプレートを使用します。手順については、CloudFormation テンプレートを使用して AWS 環境を設定するをご覧ください。
- カスタマイズした設定またはロール名を使用している場合は、AWS アカウントを手動で構成します。手順については、AWS アカウントを手動で構成するをご覧ください。
CloudFormation テンプレートを使用して AWS 環境を設定する
CloudFormation テンプレートをダウンロードした場合は、次の手順で AWS 環境を設定します。
- AWS 委任アカウント コンソールにログインします。他のコレクタの AWS アカウントの権限を借用するために使用される委任アカウント(AWS 管理アカウントまたは委任管理者として登録されているメンバー アカウント)にログインしていることを確認します。
- AWS CloudFormation テンプレート コンソールに移動します。
委任ロールをプロビジョニングするスタックを作成します。
- [Stacks] ページで、[Create stack] > [With new resources (standard)] をクリックします。
- テンプレートを指定する場合は、委任ロール テンプレート ファイルをアップロードします。
- スタックの詳細を指定するときは、スタック名を入力します。
委任ロール、コレクタロール、Sensitive Data Protection ロールのロール名を変更した場合は、それに応じてパラメータを更新します。入力するパラメータは、Google Cloud コンソールの [AWS に接続] ページに表示されているパラメータと一致していなければなりません。
組織で必要に応じて、スタック オプションを更新します。
[確認して作成] ページで、[AWS CloudFormation がカスタム名で IAM リソースを作成することを確認します] を選択します。
[送信] をクリックしてスタックを作成します。
クラスタが作成されるまで待ちます。問題が発生した場合は、トラブルシューティングをご覧ください。詳細については、AWS ドキュメントの AWS CloudFormation コンソールでスタックを作成するをご覧ください。
コレクタロールをプロビジョニングするスタックセットを作成します。
- [StackSets] ページで、[StackSet を作成] をクリックします。
[サービスが管理する権限] をクリックします。
テンプレートを指定する場合は、コレクタロール テンプレート ファイルをアップロードします。
StackSet の詳細を指定するときに、スタックセットの名前と説明を入力します。
委任アカウント ID を入力します。
委任ロール、コレクタロール、Sensitive Data Protection ロールのロール名を変更した場合は、それに応じてパラメータを更新します。入力するパラメータは、Google Cloud コンソールの [AWS に接続] ページに表示されているパラメータと一致していなければなりません。
組織で必要な場合は、スタックセット オプションを構成します。
デプロイ オプションを指定するときに、デプロイ ターゲットを選択します。AWS 組織全体にデプロイすることも、データの収集元となるすべての AWS アカウントを含む組織部門(OU)にデプロイすることもできます。
ロールとポリシーを作成する AWS リージョンを指定します。ロールはグローバル リソースであるため、複数のリージョンを指定する必要はありません。
必要に応じて他の設定を変更します。
変更を確認し、[送信] をクリックしてスタックセットを作成します。エラーが発生した場合は、トラブルシューティングをご覧ください。詳細については、AWS のドキュメントでサービス管理の権限を使用してスタックセットを作成するをご覧ください。
管理アカウントからデータを収集する必要がある場合は、管理アカウントにログインして、別のスタックをデプロイしてコレクタロールをプロビジョニングします。テンプレートを指定する場合は、コレクタロール テンプレート ファイルをアップロードします。
この手順は、AWS CloudFormation スタックセットが管理アカウントにスタック インスタンスを作成しないため必要です。詳細については、AWS ドキュメントの DeploymentTargets をご覧ください。
インテグレーション プロセスを完了するには、インテグレーション プロセスを完了するをご覧ください。
AWS アカウントを手動で構成する
CloudFormation テンプレートを使用できない場合(たとえば、別のロール名を使用している場合や、インテグレーションをカスタマイズしている場合)、必要な AWS IAM ポリシーと AWS IAM のロールを手動で作成できます。
委任されたアカウントとコレクタ アカウントの AWS IAM ポリシーと AWS IAM のロールを作成する必要があります。
委任されたロールの AWS IAM ポリシーを作成する
委任ロールの AWS IAM ポリシー(委任ポリシー)を作成するには、次の操作を行います。
AWS 委任アカウント コンソールにログインします。
[ポリシー] > [ポリシーを作成] をクリックします。
[JSON] をクリックし、[Security Command Center を構成する] で [機密データ保護の検出に対する権限を付与する] チェックボックスをオンにしたかどうかに応じて、次のいずれかを貼り付けます。
Sensitive Data Protection 検出に対する権限を付与する: cleared
{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::*:role/COLLECTOR_ROLE_NAME", "Effect": "Allow" }, { "Action": [ "organizations:List*", "organizations:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }
COLLECTOR_ROLE_NAME
は、Security Command Center の構成時にコピーしたコレクタロールの名前に置き換えます(デフォルトはaws-collector-role
です)。Sensitive Data Protection 検出に対する権限を付与する: selected
{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::*:role/COLLECTOR_ROLE_NAME", "arn:aws:iam::*:role/SCAN_SENSITIVE_DATA_COLLECTOR_ROLE_NAME" ], "Effect": "Allow" }, { "Action": [ "organizations:List*", "organizations:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }
以下を置き換えます。
COLLECTOR_ROLE_NAME
: Security Command Center の構成時にコピーした構成データ コレクタのロールの名前(デフォルトはaws-collector-role
)SCAN_SENSITIVE_DATA_COLLECTOR_ROLE_NAME
: Security Command Center の構成時にコピーした Sensitive Data Protection コレクタロールの名前(デフォルトはaws-sensitive-data-protection-role
)
[次へ] をクリックします。
[ポリシーの詳細] セクションで、ポリシーの名前と説明を入力します。
[ポリシーの作成] をクリックします。
AWS と Google Cloud 間の信頼関係用の AWS IAM ロールを作成する
AWS と Google Cloud 間の信頼できる関係を設定する委任ロールを作成します。このロールは、委任されたロールの AWS IAM ポリシーを作成するで作成した委任ポリシーを使用します。
IAM ロールとポリシーを作成できる AWS ユーザーとして、AWS 委任アカウント コンソールにログインします。
[Roles] > [Create role] をクリックします。
[Trusted entity type] で [Web Identity] をクリックします。
[Identity Provider] で [Google] をクリックします。
[Audience] には、Security Command Center の構成時にコピーしたサービス エージェント ID を入力します。[次へ] をクリックします。
委任されたロールにコレクタロールへのアクセス権を付与するには、権限ポリシーをロールに接続します。委任されたロールの AWS IAM ポリシーを作成するで作成した委任ポリシーを検索して選択します。
[ロールの詳細] セクションで、Security Command Center の構成時にコピーした委任されたロール名を入力します(デフォルト名は
aws-delegated-role
です)。[ロールを作成] をクリックします。
アセット構成データの収集用の AWS IAM ポリシーを作成する
アセット構成データの収集(コレクタ ポリシー)用の AWS IAM ポリシーを作成するには、次の手順を実行します。
AWS コレクタ アカウント コンソールにログインします。
[ポリシー] > [ポリシーを作成] をクリックします。
[JSON] をクリックして、次の内容を貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ce:GetCostAndUsage", "dynamodb:DescribeTableReplicaAutoScaling", "identitystore:ListGroupMemberships", "identitystore:ListGroups", "identitystore:ListUsers", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "logs:ListTagsForResource", "s3express:GetBucketPolicy", "s3express:ListAllMyDirectoryBuckets", "wafv2:GetIPSet" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "apigateway:GET" ], "Resource": [ "arn:aws:apigateway:*::/usageplans", "arn:aws:apigateway:*::/usageplans/*/keys", "arn:aws:apigateway:*::/vpclinks/*" ] } ] }
[次へ] をクリックします。
[ポリシーの詳細] セクションで、ポリシーの名前と説明を入力します。
[ポリシーの作成] をクリックします。
コレクタ アカウントごとに、この手順を繰り返します。
各アカウントでアセット構成データを収集するための AWS IAM ロールを作成する
Security Command Center が AWS からアセット構成データを取得できるように、コレクタロールを作成します。このロールでは、アセット構成データ収集用の AWS IAM ポリシーを作成するで作成したコレクタ ポリシーを使用します。
コレクタ アカウントの IAM ロールを作成できるユーザーとして AWS コレクタ アカウント コンソールにログインします。
[Roles] > [Create role] をクリックします。
[Trusted entity type] で、[Custom trust policy] をクリックします。
[Custom trust policy] セクションに、次のように貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::DELEGATE_ACCOUNT_ID:role/DELEGATE_ACCOUNT_ROLE" }, "Action": "sts:AssumeRole" } ] }
以下を置き換えます。
DELEGATE_ACCOUNT_ID
: 委任アカウントの AWS アカウント IDDELEGATE_ACCOUNT_ROLE
: Security Command Center の構成時にコピーした委任ロール名。
このコレクタロールに AWS アセット構成データへのアクセス権を付与するには、権限ポリシーをロールに接続します。アセット構成データ収集用の AWS IAM ポリシーを作成するで作成したカスタム コレクタ ポリシーを検索して選択します。
次の管理ポリシーを検索して選択します。
- arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
- arn:aws:iam::aws:policy/SecurityAudit
[ロールの詳細] セクションで、Security Command Center の構成時にコピーした構成データ コレクタ ロールの名前を入力します。
[ロールを作成] をクリックします。
コレクタ アカウントごとに、この手順を繰り返します。
[Security Command Center を構成する] で [機密データ保護の検出に権限を付与する] チェックボックスをオンにした場合は、次のセクションに進みます。
[機密データの保護の検出の権限を付与する] チェックボックスを有効にしていない場合は、インテグレーション プロセスを完了します。
機密データ保護の AWS IAM ポリシーを作成する
Security Command Center の構成で [Sensitive Data Protection の検出に権限を付与する] チェックボックスをオンにした場合は、これらの手順を行います。
機密データの保護用の AWS IAM ポリシー(コレクタ ポリシー)を作成するには、次の手順を実行します。
AWS コレクタ アカウント コンソールにログインします。
[ポリシー] > [ポリシーを作成] をクリックします。
[JSON] をクリックして、次の内容を貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:GetBucketPolicyStatus", "s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketPublicAccessBlock", "s3:GetBucketOwnershipControls", "s3:GetBucketTagging" ], "Resource": ["arn:aws:s3:::*"] }, { "Effect": "Allow", "Action": [ "iam:ListAttachedRolePolicies", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListRolePolicies", "iam:GetRolePolicy", "ce:GetCostAndUsage", "dynamodb:DescribeTableReplicaAutoScaling", "identitystore:ListGroupMemberships", "identitystore:ListGroups", "identitystore:ListUsers", "lambda:GetFunction", "lambda:GetFunctionConcurrency", "logs:ListTagsForResource", "s3express:GetBucketPolicy", "s3express:ListAllMyDirectoryBuckets", "wafv2:GetIPSet" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "s3express:CreateSession" ], "Resource": ["arn:aws:s3express:*:*:bucket/*"] } ] }
[次へ] をクリックします。
[ポリシーの詳細] セクションで、ポリシーの名前と説明を入力します。
[ポリシーの作成] をクリックします。
コレクタ アカウントごとに、この手順を繰り返します。
各アカウントで Sensitive Data Protection の AWS IAM ロールを作成する
Security Command Center の構成で [Sensitive Data Protection の検出に権限を付与する] チェックボックスをオンにした場合は、これらの手順を行います。
Sensitive Data Protection が AWS リソースのコンテンツをプロファイリングできるようにするコレクタロールを作成します。このロールは、Sensitive Data Protection の AWS IAM ポリシーを作成するで作成したコレクタ ポリシーを使用します。
コレクタ アカウントの IAM ロールを作成できるユーザーとして、AWS コレクタ アカウント コンソールにログインします。
[Roles] > [Create role] をクリックします。
[Trusted entity type] で、[Custom trust policy] をクリックします。
[Custom trust policy] セクションに、次のように貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::DELEGATE_ACCOUNT_ID:role/DELEGATE_ACCOUNT_ROLE" }, "Action": "sts:AssumeRole" } ] }
以下を置き換えます。
DELEGATE_ACCOUNT_ID
: 委任アカウントの AWS アカウント IDDELEGATE_ACCOUNT_ROLE
: Security Command Center の構成時にコピーした委任されたロール名
このコレクタロールに AWS リソースのコンテンツへのアクセス権を付与するには、権限ポリシーをロールに接続します。機密データの保護の AWS IAM ポリシーを作成するで作成したカスタム コレクタ ポリシーを検索して選択します。
[ロールの詳細] セクションで、Security Command Center の構成時にコピーした機密データの保護のロールの名前を入力します。
[ロールを作成] をクリックします。
コレクタ アカウントごとに、この手順を繰り返します。
インテグレーション プロセスを完了するには、インテグレーション プロセスを完了するをご覧ください。
インテグレーション プロセスを完了する
Google Cloud コンソールの [コネクタをテスト] ページで、[コネクタをテスト] をクリックし、Security Command Center が AWS 環境に接続できることを確認します。接続に成功すると、テストでは、委任されたロールにコレクタロールを想定するために必要なすべての権限が付与されていると判断されます。接続に失敗した場合は、接続テスト時のエラーのトラブルシューティングをご覧ください。
[作成] をクリックします。
AWS コネクタの構成をカスタマイズする
このセクションでは、Security Command Center と AWS 間の接続をカスタマイズする方法について説明します。これらのオプションは、[Amazon Web Services コネクタを追加する] ページの [詳細オプション(省略可)] セクションで使用できます(Google Cloud コンソール)。
デフォルトでは、Security Command Center はすべての AWS リージョンの AWS アカウントを自動的に検出します。接続では、AWS Security Token Service のデフォルトのグローバル エンドポイントと、モニタリングする AWS サービスのデフォルトの秒間クエリ数(QPS)が使用されます。これらの詳細オプションを使用すると、デフォルトをカスタマイズできます。
オプション | 説明 |
---|---|
AWS コネクタ アカウントの追加 | [アカウントを自動的に追加(推奨)] フィールドを選択して、Security Command Center に AWS アカウントを自動的に検出させるか、[アカウントを個別に追加] を選択して Security Command Center がリソースの検索に使用できる AWS アカウントのリストを指定します。 |
AWS コネクタ アカウントを除外する | [AWS コネクタ アカウントの追加] セクションで [アカウントを個別に追加] フィールドを選択した場合は、Security Command Center がリソースの検索で使用しない AWS アカウントのリストを指定します。 |
データを収集するリージョンを選択する | データを収集する Security Command Center の AWS リージョンを 1 つ以上選択します。すべてのリージョンからデータを収集するには、[AWS リージョン] フィールドを空白のままにします。 |
AWS サービスの最大秒間クエリ数(QPS) | QPS を変更して、Security Command Center の割り当て上限を制御できます。オーバーライドを、そのサービスのデフォルト値よりも小さい、1 以上の値に設定します。デフォルト値は最大値です。QPS を変更すると、Security Command Center でのデータ取得で問題が発生することがあります。そのため、この値は変更しないことをおすすめします。 |
AWS Security Token Service のエンドポイント | AWS Security Token Service には、特定のエンドポイントを指定できます(例: https://sts.us-east-2.amazonaws.com )。デフォルトのグローバル エンドポイント(https://sts.amazonaws.com )を使用するには、[AWS Security Token Service] フィールドを空のままにします。 |
既存の AWS コネクタに機密データ検出の権限を付与する
AWS コンテンツで機密データの検出を行うには、必要な AWS IAM 権限を持つ AWS コネクタが必要です。
このセクションでは、既存の AWS コネクタにこれらの権限を付与する方法について説明します。必要な手順は、AWS 環境の構成に CloudFormation テンプレートを使用したか、手動で行ったかによって異なります。
CloudFormation テンプレートを使用して既存のコネクタを更新する
CloudFormation テンプレートを使用して AWS 環境を設定している場合は、次の手順に沿って、既存の AWS コネクタの機密データ検出権限を付与します。
Google Cloud コンソールで、Security Command Center の [設定ガイド] ページに移動します。
Security Command Center Enterprise ティアを有効にした組織を選択します。[設定ガイド] ページが開きます。
ステップ 3: アマゾン ウェブ サービス(AWS)インテグレーションをクリックします。[コネクタ] ページが開きます。
AWS コネクタで、> [編集] をクリックします。
詳細[データ型の確認] セクションで、[Sensitive Data Protection 検出の権限を付与する] を選択します。
[続行] をクリックします。[AWS に接続] ページが開きます。
[委任ロールのテンプレートをダウンロード] をクリックします。テンプレートがパソコンにダウンロードされます。
[Download collector role template] をクリックします。テンプレートがパソコンにダウンロードされます。
[続行] をクリックします。[コネクタをテスト] ページが開きます。コネクタはまだテストしないでください。
CloudFormation コンソールで、委任されたロールのスタック テンプレートを更新します。
- AWS 委任アカウント コンソールにログインします。他のコレクタ AWS アカウントを使用するための委任アカウントにログインしていることを確認します。
- AWS CloudFormation コンソールに移動します。
委任ロールのスタック テンプレートを、ダウンロードした更新された委任ロール テンプレートに置き換えます。
詳細については、AWS のドキュメントのスタックのテンプレートを更新する(コンソール)をご覧ください。
コレクタロールのスタックセットを更新します。
- AWS 管理アカウントまたは委任管理者として登録されているメンバー アカウントを使用して、AWS CloudFormation コンソールに移動します。
コレクタロールのスタックセット テンプレートを、ダウンロードした更新されたコレクタロール テンプレートに置き換えます。
詳細については、AWS ドキュメントの AWS CloudFormation コンソールを使用してスタックセットを更新するをご覧ください。
管理アカウントからデータを収集する必要がある場合は、管理アカウントにログインし、コレクタ スタック内のテンプレートを、ダウンロードした更新されたコレクタロール テンプレートに置き換えます。
この手順は、AWS CloudFormation スタックセットが管理アカウントにスタック インスタンスを作成しないため必要です。詳細については、AWS ドキュメントの DeploymentTargets をご覧ください。
Google Cloud コンソールの [コネクタのテスト] ページで、[コネクタをテスト] をクリックします。接続に成功すると、テストでは、委任されたロールにコレクタロールを想定するために必要なすべての権限が付与されていると判断されます。接続に失敗した場合は、接続テスト時のエラーのトラブルシューティングをご覧ください。
[保存] をクリックします。
既存のコネクタを手動で更新する
AWS コネクタの作成時に AWS アカウントを手動で構成した場合は、次の手順で既存の AWS コネクタに機密データ検出の権限を付与します。
Google Cloud コンソールで、Security Command Center の [設定ガイド] ページに移動します。
Security Command Center Enterprise ティアを有効にした組織を選択します。[設定ガイド] ページが開きます。
ステップ 3: アマゾン ウェブ サービス(AWS)インテグレーションをクリックします。[コネクタ] ページが開きます。
AWS コネクタで、> [編集] をクリックします。
詳細[データ型の確認] セクションで、[Sensitive Data Protection 検出の権限を付与する] を選択します。
[続行] をクリックします。[AWS に接続] ページが開きます。
[AWS アカウントを手動で構成する(高度な設定またはカスタマイズしたロール名を使用する場合に推奨)] をクリックします。
次のフィールドの値をコピーします。
- 委任ロールの名前
- コレクタロールの名前
- Sensitive Data Protection コレクタロールの名前
[続行] をクリックします。[コネクタをテスト] ページが開きます。コネクタはまだテストしないでください。
AWS 委任アカウント コンソールで、次の JSON を使用するように委任されたロールの AWS IAM ポリシーを更新します。
{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::*:role/COLLECTOR_ROLE_NAME", "arn:aws:iam::*:role/SCAN_SENSITIVE_DATA_COLLECTOR_ROLE_NAME" ], "Effect": "Allow" }, { "Action": [ "organizations:List*", "organizations:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }
以下を置き換えます。
COLLECTOR_ROLE_NAME
: コピーした構成データ コレクタ ロールの名前(デフォルトはaws-collector-role
)SCAN_SENSITIVE_DATA_COLLECTOR_ROLE_NAME
: コピーした Sensitive Data Protection コレクタロールの名前(デフォルトはaws-sensitive-data-protection-role
)
詳細については、AWS ドキュメントのカスタマー マネージド ポリシーの編集(コンソール)をご覧ください。
コレクタ アカウントごとに、次の手順を行います。
Google Cloud コンソールの [コネクタのテスト] ページで、[コネクタをテスト] をクリックします。接続に成功すると、テストでは、委任されたロールにコレクタロールを想定するために必要なすべての権限が付与されていると判断されます。接続に失敗した場合は、接続テスト時のエラーのトラブルシューティングをご覧ください。
[保存] をクリックします。
トラブルシューティング
このセクションでは、Security Command Center を AWS と統合するときに発生する可能性がある一般的な問題について説明します。
リソースがすでに存在する
このエラーは、AWS IAM ポリシーと AWS IAM ロールを作成しようとすると、AWS 環境で発生します。この問題は、AWS アカウントにロールがすでに存在し、そのロールを再度作成しようとした場合に発生します。
この問題を解決するには、次の操作を行います。
- 作成するロールまたはポリシーがすでに存在し、このガイドに記載されている要件を満たしているかどうかを確認します。
- 必要に応じて、競合を回避するためにロール名を変更します。
ポリシー内のプリンシパルが無効
このエラーは、AWS 環境でコレクタロールを作成したものの、委任ロールがまだ存在しない場合に発生する可能性があります。
この問題を解決するには、委任ロールの AWS IAM ポリシーを作成するの手順を完了し、委任ロールが作成されるまで待ってから続行します。
AWS のスロットリングの制限
AWS は、アカウント単位またはリージョン単位で各 AWS アカウントに対する API リクエストをスロットルします。Security Command Center が AWS からアセット構成データを収集するときに、これらの上限を超えないようにするため、Security Command Center は、AWS の API ドキュメントで説明されているように、各 AWS サービスの固定の最大 QPS でデータを収集します。
消費される QPS が原因で AWS 環境でリクエストの抑制が発生した場合は、次の操作を行うことで問題を軽減できます。
[AWS コネクタの設定ページ] で、リクエストのスロットリングの問題が発生している AWS サービスにカスタム QPS を設定します。
AWS コレクタロールの権限を制限して、その特定のサービスのデータが収集されないようにします。この緩和策により、AWS で攻撃パス シミュレーションが正しく動作しなくなります。
AWS ですべての権限を取り消すと、データ コレクタ プロセスは直ちに停止します。AWS コネクタを削除しても、データ コレクタのプロセスはすぐに停止しませんが、完了後に再開されることはありません。
接続テスト時のエラーのトラブルシューティング
これらのエラーは、Security Command Center と AWS 間の接続をテストするときに発生することがあります。
AWS_FAILED_TO_ASSUME_DELEGATED_ROLE
Google Cloud サービス エージェントは委任ロールを想定できないため、接続は無効です。
この問題を解決するには、次の点を考慮してください。
委任されたロールが存在することを確認します。作成するには、AWS と Google Cloud 間の信頼関係用の AWS IAM 役割を作成するをご覧ください。
委任されたロールのインライン ポリシーがありません。これがないと、サービス エージェントはロールを引き継ぐことができません。インライン ポリシーが存在することを確認するには、AWS と Google Cloud 間の信頼関係用の AWS IAM ロールを作成するをご覧ください。
AWS_FAILED_TO_LIST_ACCOUNTS
自動検出が有効になっており、委任ロールが組織内のすべての AWS アカウントを取得できないため、接続は無効です。
この問題は、委任されたロールに対する organizations:ListAccounts
アクションを許可するポリシーが特定のリソースにないことを示しています。この問題を解決するには、不足しているリソースを確認します。委任ポリシーの設定を確認するには、委任ロールの AWS IAM ポリシーを作成するをご覧ください。
AWS_INVALID_COLLECTOR_ACCOUNTS
無効なコレクタ アカウントがあるため、接続は無効です。エラー メッセージには、考えられる原因に関する詳細情報が含まれます。考えられる原因は次のとおりです。
AWS_FAILED_TO_ASSUME_COLLECTOR_ROLE
委任ロールはコレクタ アカウントのコレクタロールを想定できないため、コレクタ アカウントは無効です。
この問題を解決するには、次の点を考慮してください。
コレクタロールが存在することを確認します。
- アセット構成データのコレクタロールを作成するには、各アカウントでアセット構成データの収集に使用する AWS IAM ロールを作成するをご覧ください。
- 機密データの保護のコレクタロールを作成するには、各アカウントで機密データの保護の AWS IAM ロールを作成するをご覧ください。
委任されたロールがコレクタロールを引き受けることを許可するポリシーがありません。ポリシーが存在することを確認するには、委任されたロールの AWS IAM ポリシーを作成するをご覧ください。
AWS_COLLECTOR_ROLE_POLICY_MISSING_REQUIRED_PERMISSION
コレクタ ポリシーに必要な権限設定の一部がないため、接続が無効です。
この問題を解決するには、次の原因が考えられます。
必要な AWS 管理ポリシーの一部が、アセット構成データのコレクタロールに接続されていない場合があります。すべてのポリシーが接続されていることを確認するには、各アカウントでアセット構成データの収集用の AWS IAM ロールを作成するのステップ 6 をご覧ください。
コレクタ ポリシーで次のいずれかの問題が発生している可能性があります。
- コレクタ ポリシーが存在しない可能性があります。
- コレクタ ポリシーがコレクタロールに接続されていません。
- コレクタ ポリシーには、必要な権限がすべて含まれているわけではありません。
コレクタ ポリシーに関する問題を解決するには、以下をご覧ください。
次のステップ
- Security Command Center Enterprise を初めて設定する場合は、コンソールの設定ガイドの手順 4 に進みます。
- AWS からの脆弱性の検出結果を確認して修正する。
- AWS のセキュリティ ポスチャーを作成して管理する。
- AWS リソースの攻撃パス シミュレーションを作成する。
- さまざまな標準とベンチマークにAWS リソースのコンプライアンスをマッピングする。