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 のプライバシーに関するお知らせに沿って、サービスデータと同じ方法で処理されます。
Google Cloud の組織ごとに 1 つの AWS 接続を作成できます。このコネクタは API 呼び出しを使用して AWS アセットデータを収集します。これらの API 呼び出しにより AWS の料金が発生する場合があります。
このドキュメントでは、AWS との接続を設定する方法について説明します。接続を設定する際には、以下の構成を行います。
- モニタリングする AWS リソースに直接アクセスできる AWS の一連のアカウント。これらのアカウントは、 Google Cloud コンソールでコレクタ アカウントと呼ばれます。
- コレクタ アカウントの認証を許可する適切なポリシーとロールを持つ AWS のアカウント。 Google Cloud コンソールでは、このアカウントは委任アカウントと呼ばれます。委任アカウントとコレクタ アカウントは、同じ AWS 組織に存在しなければなりません。
- Google Cloud のサービス エージェント。認証のために委任アカウントに接続します。
- AWS リソースからアセットデータを収集するパイプライン。
- (省略可)Sensitive Data Protection が AWS コンテンツをプロファイリングするための権限。
コネクタは、Security Command Center Enterprise の SIEM キュレーテッド検出機能に必要な AWS ログを取り込みません。このデータの取り込みについては、ログの取り込みのために AWS に接続するをご覧ください。
この接続は、脅威検出のために AWS ログを取り込むことができる Security Command Center の SIEM 機能には適用されません。
以下の図に、この構成を示します。テナント プロジェクトは、アセットデータ収集パイプライン インスタンスを含む、自動作成されるプロジェクトです。
構成手順の概要
始める前にの手順を完了したら、各セクションの手順に沿って Security Command Center のエンタープライズ ティアをアマゾン ウェブ サービス(AWS)環境に接続します。
- AWS コネクタを構成する
- 次のいずれかの方法で AWS 環境を構成します。
- CloudFormation テンプレートを使用して自動的に
- AWS アカウントを手動で入力する
- AWS コネクタの統合プロセスを完了する
始める前に
以下のタスクを完了してから、このページの残りのタスクを完了してください。
Google Cloudで権限を設定する
AWS コネクタを使用するために必要な権限を取得するには、Cloud Asset オーナー(roles/cloudasset.owner
)IAM ロールの付与を管理者に依頼してください。ロールの付与について詳しくは、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
AWS アカウントを作成する
次の AWS リソースがあることを確認します。
委任アカウントとコレクタ AWS アカウントのコンソール用の AWS IAM アクセス権限を持つ AWS IAM ユーザー。
委任アカウントとして使用できる AWS アカウントの AWS アカウント ID。委任アカウントは、次の要件を満たしている必要があります。
委任アカウントは AWS 組織に接続されている必要があります。アカウントを AWS 組織に接続するには、次の操作を行います。
委任アカウントは次のいずれかである必要があります。
- AWS 管理アカウント。
- AWS 委任管理者。
organizations:ListAccounts
権限を提供するリソースベースの委任ポリシーを持つ AWS アカウント。ポリシーの例については、AWS ドキュメントの AWS Organizations でリソースベースの委任ポリシーを作成するをご覧ください。
AWS コネクタを構成する
[設定] ページの [コネクタ] タブを開きます。
Security Command Center Enterprise を有効にした組織を選択します。
[コネクタ] > [コネクタを追加] > [Amazon Web Services] を選択します。
[委任アカウント ID] に、委任アカウントとして使用できる AWS アカウントの AWS アカウント ID を入力します。
Sensitive Data Protection で AWS データをプロファイリングできるようにするには、[Sensitive Data Protection 検出に対する権限を付与する] を選択したままにします。このオプションにより、コレクタロールの CloudFormation テンプレートに AWS Identity and Access Management(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 に接続] ページが開きます。
次のいずれかを選択します。
AWS CloudFormation テンプレートを使用して、委任ロールとコレクタロールの CloudFormation テンプレートをダウンロードして確認します。
AWS アカウントを手動で構成する: 詳細オプションを構成した場合や、デフォルトの AWS ロール名(aws-delegated-role、aws-collector-role、aws-sensitive-data-protection-role)を変更する必要がある場合は、これを選択します。サービス エージェント ID、委任ロール名、コレクタロール名、Sensitive Data Protection コレクタロール名をコピーします。
接続の作成後にロール名を変更することはできません。
[保存] または [続行] はクリックしないでください。代わりに、AWS 環境を構成します。
AWS 環境を構成する
AWS 環境は、次のいずれかの方法で設定できます。
- AWS コネクタを構成するでダウンロードした CloudFormation テンプレートを使用します。手順については、CloudFormation テンプレートを使用して AWS 環境を設定するをご覧ください。
- カスタマイズした設定またはロール名を使用している場合は、AWS アカウントを手動で構成します。手順については、AWS アカウントを手動で構成するをご覧ください。
CloudFormation テンプレートを使用して AWS 環境を設定する
CloudFormation テンプレートをダウンロードした場合は、次の大まかな手順で AWS 環境を設定します。
- AWS 委任アカウント コンソールにログインします。他のコレクタ AWS アカウントの権限を借用するために使用される委任アカウント(AWS 管理アカウント、または委任管理者として登録されているメンバー アカウント)にログインしていることを確認します。
委任ロールをプロビジョニングするスタックを作成します。詳細については、スタックを作成するをご覧ください。
次の点にご注意ください。
- 委任ロール、コレクタロール、Sensitive Data Protection ロールのロール名を変更した場合は、それに応じてパラメータを更新します。入力するパラメータは、 Google Cloud コンソールの [AWS に接続] ページに表示されているパラメータと一致していなければなりません。
- クラスタが作成されるまで待ちます。エラーが発生した場合は、トラブルシューティングをご覧ください。詳細については、AWS ドキュメントの AWS CloudFormation コンソールでスタックを作成するをご覧ください。
コレクタロールをプロビジョニングするスタックを作成します。この方法の詳細については、サービスマネージド型のアクセス許可を持つ CloudFormation StackSets の作成をご覧ください。
次の点にご注意ください。
AWS アカウントを個別に追加する場合(Google Cloud コンソールでコネクタを構成するときに [アカウントを個別に追加する] を選択した場合)、スタックセットを 1 つ作成する代わりに、AWS アカウントごとに個別にスタックを作成することもできます。
- サービスマネージド型のアクセス許可は、推奨設定です。セルフマネージド型のアクセス許可を使用することもできますが、その場合はアクセス許可を手動で付与する必要があります。注: セルフマネージド型のアクセス許可を選択した場合は、デプロイ先の AWS アカウントを選択できます。CloudFormation テンプレートでは、カスタム構成で説明されているように、含めるまたは除外する AWS アカウントのリストの指定はサポートされていません。含めるまたは除外する AWS アカウントのリストを作成する場合、スタックセットによって不要なスタックが作成される可能性があります。このようなスタックは無視または削除できます。
委任ロール、コレクタロール、Sensitive Data Protection ロールのロール名を変更した場合は、それに応じてパラメータを更新します。入力するパラメータは、 Google Cloud コンソールの [AWS に接続] ページに表示されているパラメータと一致していなければなりません。
組織の要件に応じて、スタックセット オプションを構成します。
デプロイ オプションを指定するときに、デプロイ ターゲットを選択します。AWS 組織全体にデプロイすることも、データの収集元となるすべての AWS アカウントが含まれる組織単位(OU)にデプロイすることもできます。
ロールとポリシーを作成する AWS リージョンを指定します。ロールはグローバル リソースであるため、複数のリージョンを指定する必要はありません。
エラーが発生した場合は、トラブルシューティングをご覧ください。詳細については、AWS ドキュメントのサービスマネージド型のアクセス許可を持つ CloudFormation StackSets の作成をご覧ください。
- 管理アカウントからデータを収集する必要がある場合は、管理アカウントにログインし、別のスタックをデプロイしてコレクタロールをプロビジョニングします。テンプレートを指定する場合は、コレクタロール テンプレート ファイルをアップロードします。
このステップが必要なのは、AWS CloudFormation スタックセットでは管理アカウントにスタック インスタンスが作成されないためです。詳細については、AWS ドキュメントの DeploymentTargets をご覧ください。
- サービスマネージド型のアクセス許可は、推奨設定です。セルフマネージド型のアクセス許可を使用することもできますが、その場合はアクセス許可を手動で付与する必要があります。注: セルフマネージド型のアクセス許可を選択した場合は、デプロイ先の AWS アカウントを選択できます。CloudFormation テンプレートでは、カスタム構成で説明されているように、含めるまたは除外する AWS アカウントのリストの指定はサポートされていません。含めるまたは除外する AWS アカウントのリストを作成する場合、スタックセットによって不要なスタックが作成される可能性があります。このようなスタックは無視または削除できます。
インテグレーション プロセスを完了するの手順を行います。
AWS アカウントを手動で構成する
CloudFormation テンプレートを使用できない場合(たとえば、別のロール名を使用している場合や、インテグレーションをカスタマイズしている場合)、必要な AWS IAM ポリシーと AWS IAM のロールを手動で作成できます。
次の順序で各セクションを確認して完了します。
- 委任ロールの AWS IAM ポリシーを作成する
- AWS と Google Cloud間の信頼関係用の AWS IAM ロールを作成する
- アセット構成データの収集用の AWS IAM ポリシーを作成する
- 各アカウントでアセット構成データの収集用の AWS IAM ロールを作成する
- Sensitive Data Protection 用の AWS IAM ポリシーを作成する
委任アカウントとコレクタ アカウントの AWS IAM ポリシーと AWS IAM ロールを作成する必要があります。
委任ロールの AWS IAM ポリシーを作成する
委任ロールの AWS IAM ポリシー(委任ポリシー)を作成するには、AWS ドキュメントのポリシーを作成するの手順に沿って操作します。
ポリシーを作成するときに、[Security Command Center を構成する] の [Sensitive Data Protection 検出に対する権限を付与する] チェックボックスをオンにしたかどうかに応じて、JSON ステップに次のいずれかを貼り付けます。
Sensitive Data Protection 検出に対する権限を付与する: オフ
{ "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 検出に対する権限を付与する: オン
{ "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 ポリシーを作成するで作成した委任ポリシーを使用します。
AWS ドキュメントの OIDC のロールを作成するの手順に沿って操作します。
ロールを作成するときに、次の項目を指定します。
信頼できるエンティティ タイプ: [ウェブ ID] を選択します。
ID プロバイダ: [Google] を選択します。
対象ユーザー: 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 ポリシーを作成するで作成したコレクタ ポリシーを使用します。
AWS ドキュメントのカスタムロールを作成するの手順に沿って、必要に応じてコレクタ アカウントごとにこの手順を繰り返します。
カスタム信頼ポリシーに、次の内容を追加します。
{ "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 を構成する] の [Sensitive Data Protection 検出に対する権限を付与する] チェックボックスをオンにした場合は、次のセクションに進みます。
[Sensitive Data Protection 検出に対する権限を付与する] チェックボックスを有効にしていない場合は、インテグレーション プロセスを完了します。
Sensitive Data Protection 用の AWS IAM ポリシーを作成する
[Security Command Center を構成する] の [Sensitive Data Protection 検出に対する権限を付与する] チェックボックスをオンにした場合は、次の手順を完了します。
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 ロールを作成する
[AWS コネクタを構成する] の [Sensitive Data Protection 検出に対する権限を付与する] チェックボックスをオンにした場合は、次の手順を完了します。
Sensitive Data Protection が AWS リソースのコンテンツをプロファイリングできるようにするコレクタロールを作成します。このロールは、Sensitive Data Protection 用の AWS IAM ポリシーを作成するで作成したコレクタ ポリシーを使用します。
AWS ドキュメントのカスタム信頼ポリシーを使用して Identity and Access Management ロールを作成する(コンソール)の手順に沿って、必要に応じてコレクタ アカウントごとに手順を繰り返します。
ポリシーを作成するときに、次の項目を指定します。
信頼できるエンティティ タイプ: [カスタム信頼ポリシー] を選択します。
カスタム信頼ポリシーに、次の内容を貼り付けます。
{ "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 リソースのコンテンツへのアクセス権を付与するには、権限ポリシーをロールに接続します。Sensitive Data Protection 用の AWS IAM ポリシーを作成するで作成したカスタム コレクタ ポリシーを検索して選択します。
ロールの詳細には、Security Command Center の構成時にコピーした Sensitive Data Protection のロールの名前を入力します。
インテグレーション プロセスを完了するの手順を行います。
AWS コネクタの構成を完了する
- [AWS に接続] ページに戻り、[続行] をクリックします。
Google Cloud コンソールの [コネクタをテスト] ページで、[コネクタをテスト] をクリックして、Security Command Center が AWS 環境に接続できることを確認します。接続に成功すると、このテストで、委任ロールにコレクタロールを引き継ぐために必要なすべての権限が付与されていることが確認されました。接続に失敗した場合は、接続テスト時のエラーのトラブルシューティングをご覧ください。
[保存] をクリックします。
AWS コネクタの構成をカスタマイズする
このセクションでは、Security Command Center と AWS 間の接続をカスタマイズする方法について説明します。これらのオプションは、 Google Cloud コンソールの [Amazon Web Services コネクタを追加する] ページの [詳細オプション(省略可能)] セクションで使用できます。
デフォルトでは、Security Command Center はすべての AWS リージョンの AWS アカウントを自動的に検出します。この接続には、AWS Security Token Service のデフォルトのグローバル エンドポイントと、モニタリング対象の AWS サービスに対するデフォルトの秒間クエリ数(QPS)が使用されます。以下の高度なオプションを使用すると、デフォルトをカスタマイズできます。
オプション | 説明 |
---|---|
AWS コネクタ アカウントの追加 | 必要に応じてオプションを選択します。
|
AWS コネクタ アカウントを除外する | [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 コネクタに付与する方法について説明します。必要な手順は、CloudFormation テンプレートを使用して AWS 環境を構成したか、手動で構成したかによって異なります。
CloudFormation テンプレートを使用して既存のコネクタを更新する
CloudFormation テンプレートを使用して AWS 環境を設定する場合は、次の手順に沿って、既存の AWS コネクタに機密データの検出の権限を付与します。
Google Cloud コンソールで、[設定] > [SCC の設定] に移動します。
Security Command Center Enterprise を有効にした組織を選択します。
[コネクタ] を選択します。[コネクタの構成] ページが開きます。
AWS コネクタで、> [編集] をクリックします。
[その他のオプション][データ型の確認] セクションで、[Sensitive Data Protection 検出に対する権限を付与する] を選択します。
[続行] をクリックします。[AWS に接続] ページが開きます。
[委任ロールのテンプレートをダウンロード] をクリックします。テンプレートがパソコンにダウンロードされます。
[コレクタロールのテンプレートをダウンロード] をクリックします。テンプレートがパソコンにダウンロードされます。
[続行] をクリックします。[コネクタをテスト] ページが開きます。コネクタはまだテストしないでください。
CloudFormation コンソールで、委任ロールのスタック テンプレートを更新します。
- AWS 委任アカウント コンソールにログインします。他のコレクタの AWS アカウントの権限を借用するために使用される委任アカウントにログインしていることを確認します。
- AWS CloudFormation コンソールに移動します。
委任ロールのスタック テンプレートを、ダウンロードした更新済みの委任ロール テンプレートに置き換えます。
詳細については、AWS ドキュメントの スタックのテンプレートを更新する(コンソール)をご覧ください。
コレクタロールのスタックセットを更新します。
- AWS 管理アカウント、または委任管理者として登録されているメンバー アカウントを使用して、AWS CloudFormation コンソールに移動します。
コレクタロールのスタックセット テンプレートを、ダウンロードした更新済みのコレクタロール テンプレートに置き換えます。
詳細については、AWS ドキュメントの AWS CloudFormation コンソールを使用してスタックセットを更新するをご覧ください。
管理アカウントからデータを収集する必要がある場合は、管理アカウントにログインして、コレクタ スタックのテンプレートを、ダウンロードした更新済みのコレクタロール テンプレートに置き換えます。
このステップが必要なのは、AWS CloudFormation スタックセットでは管理アカウントにスタック インスタンスが作成されないためです。詳細については、AWS ドキュメントの DeploymentTargets をご覧ください。
Google Cloud コンソールの [コネクタをテスト] ページで、[コネクタをテスト] をクリックします。接続に成功すると、このテストで、委任ロールにコレクタロールを引き継ぐために必要なすべての権限が付与されていることが確認されました。接続に失敗した場合は、接続テスト時のエラーのトラブルシューティングをご覧ください。
[保存] をクリックします。
既存のコネクタを手動で更新する
AWS コネクタの作成時に AWS アカウントを手動で構成した場合は、次の手順に沿って、既存の AWS コネクタに機密データの検出の権限を付与します。
[設定] ページの [コネクタ] タブを開きます。
Security Command Center Enterprise を有効にした組織を選択します。
AWS コネクタで、> [編集] をクリックします。
[その他のオプション][データ型の確認] セクションで、[Sensitive Data Protection 検出に対する権限を付与する] を選択します。
[続行] をクリックします。[AWS に接続] ページが開きます。
[AWS アカウントを手動で構成する(高度な設定またはカスタマイズしたロール名を使用する場合に推奨)] をクリックします。
次のフィールドの値をコピーします。
- 委任ロールの名前
- コレクタロールの名前
- Sensitive Data Protection コレクタロールの名前
[続行] をクリックします。[コネクタをテスト] ページが開きます。コネクタはまだテストしないでください。
AWS 委任アカウント コンソールで、委任ロールの AWS IAM ポリシーを更新して、次の JSON を使用します。
{ "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 コネクタを削除しても、データコレクタのプロセスは直ちに停止しませんが、完了後に再開されることはありません。
削除された AWS リソースに対する検出結果が返される
AWS リソースが削除されてから、Security Command Center のアセット インベントリ システムから削除されるまで最大で 40 時間かかることがあります。リソースを削除することにより検出結果を解決した場合には、アセットが Security Command Center のアセット インベントリ システムから削除されるまでに検出結果が報告されることがあります。
接続テスト時のエラーのトラブルシューティング
Security Command Center と AWS の間の接続をテストするときに、以下のエラーが発生することがあります。
AWS_FAILED_TO_ASSUME_DELEGATED_ROLE
Google Cloud サービス エージェントは委任ロールを引き継げないため、接続は無効です。
この状況を解決するには、次のことを考慮してください。
委任ロールが存在することを確認します。委任ロールを作成するには、AWS と Google Cloud間の信頼関係用の AWS IAM ロールを作成するをご覧ください。
委任ロールのインライン ポリシーがありません。インライン ポリシーがないと、サービス エージェントはロールを引き継ぐことができません。インライン ポリシーが存在することを確認するには、AWS と Google Cloud間の信頼関係用の AWS IAM ロールを作成するをご覧ください。
エラーの詳細に
InvalidIdentityToken: Incorrect token audience
というメッセージが含まれている場合は、AWS 環境のaccounts.google.com
に対して別の OIDC ID プロバイダが設定されていることが原因である可能性があります。このエラーを解決するには、OIDC プロバイダの作成と管理の手順に沿って、AWS 環境でaccounts.google.com
の OIDC ID プロバイダを削除します。
AWS_FAILED_TO_CONNECT_TO_ORGNIZATIONS_SERVICE
接続が AWS Organizations サービスに接続できないため、接続は無効です。このステータスは、自動検出が無効になっている接続にのみ適用されます。
この状況を解決するには、次のことを考慮してください。
- AWS アカウントを作成するの手順に沿って操作したことを確認して、構成を確認します。委任ロールの AWS IAM 権限が正しく構成されていることを確認します。
- AWS Organizations のトラブルシューティングを参照して、AWS Organizations の設定を確認します。
- AWS CloudTrail ログで、AWS Organizations サービスに関連する特定のアクセス拒否エラーを確認します。この手順を行うと、権限のギャップを正確に特定できます。
AWS_FAILED_TO_LIST_ACCOUNTS
自動検出が有効になっており、委任ロールが組織内のすべての AWS アカウントを取得できないため、接続は無効です。
このエラーは、委任ロールに対する organizations:ListAccounts
アクションを許可するポリシーが、特定のリソースにないことを示します。このエラーを解決するには、不足しているリソースを確認します。委任ポリシーの設定を確認するには、委任ロールの AWS IAM ポリシーを作成するをご覧ください。
AWS アカウントを作成するで説明されているように、AWS アカウントを作成して構成していることを確認します。
AWS_ACTIVE_COLLECTOR_ACCOUNTS_NOT_FOUND
ステータスが ACTIVE
の AWS コレクタ アカウントが見つからないため、接続は無効です。
[AWS コネクタ アカウントの追加] フィールドで [アカウントを自動的に追加] を選択した場合、[AWS コネクタ アカウントを除外する] フィールドで指定されたアカウントを除き、ACTIVE
ステータスの AWS アカウントは検出されませんでした。
[アカウントを個別に追加する] を選択した場合は、[AWS コネクタ アカウントの追加] フィールドで、指定したアカウントのステータスが ACTIVE
であることを確認します。
AWS_INVALID_COLLECTOR_ACCOUNTS
無効なコレクタ アカウントがあるため、接続は無効です。エラー メッセージには、考えられる原因に関する詳細情報が含まれます。考えられる原因は次のとおりです。
AWS_FAILED_TO_ASSUME_COLLECTOR_ROLE
委任ロールがコレクタ アカウントのコレクタロールを引き継げないため、コレクタ アカウントは無効です。
このエラーを解決するには、次の点を考慮してください。
コレクタロールが存在することを確認します。
- アセット構成データのコレクタロールを作成するには、各アカウントでアセット構成データの収集用の AWS IAM ロールを作成するをご覧ください。
- Sensitive Data Protection のコレクタロールを作成するには、各アカウントで Sensitive Data Protection 用の AWS IAM ロールを作成するをご覧ください。
委任ロールがコレクタロールを引き継ぐことを許可するポリシーがありません。ポリシーが存在することを確認するには、委任ロールの AWS IAM ポリシーを作成するをご覧ください。
AWS_COLLECTOR_ROLE_POLICY_MISSING_REQUIRED_PERMISSION
コレクタ ポリシーに必要な権限設定が一部欠落しているため、接続は無効です。
このエラーを解決するには、次の原因を検討してください。
必要な AWS マネージド ポリシーの一部が、アセット構成データのコレクタロールに接続されていない可能性があります。すべてのポリシーが接続されていることを確認するには、各アカウントでアセット構成データの収集用の AWS IAM ロールを作成するのステップ 6 をご覧ください。
コレクタ ポリシーに次のいずれかの問題がある可能性があります。
- コレクタ ポリシーが存在しない可能性がある。
- コレクタ ポリシーがコレクタロールに接続されていない。
- コレクタ ポリシーに必要な権限がすべて含まれていない。
コレクタ ポリシーに関する問題を解決するには、以下をご覧ください。
次のステップ
- 初めて Security Command Center Enterprise を設定する場合は、設定ガイドを使用して追加機能を構成します。
さらに、次のことも可能です。
- AWS の脆弱性評価を有効にして使用する。
- AWS のセキュリティ ポスチャーを作成して管理する。
- AWS リソースの攻撃パス シミュレーションを作成する。
- AWS リソースのコンプライアンスをさまざまな標準とベンチマークにマッピングする。