AWS Config のコンフォーマンスパックの前提条件
コンフォーマンスパックをデプロイする前に、AWS Config 記録をオンにします。
ステップ 1: AWS Config 記録を開始する (すべてのコンフォーマンスパックで必須)
ステップ 2: コンフォーマンスパックタイプ別の追加の前提条件
修復が含まれるサンプルテンプレートを使用してコンフォーマンスパックをデプロイする前に、修復ターゲットに基づいて、オートメーション継承ロールやその他の AWS リソースなどの適切なリソースを作成する必要があります。
SSM ドキュメントを使用して修復に使用している既存の自動化ロールがある場合は、そのロールの ARN を直接提供できます。リソースがある場合は、テンプレートにリソースを提供できます。
組織に修復を伴うコンフォーマンスパックをデプロイする場合、組織の管理アカウント ID を指定する必要があります。それ以外の場合は、組織のコンフォーマンスパックデプロイ時に、AWS Config によって、管理アカウント ID をメンバーアカウント ID に自動的に置き換えます。
AWS Config は、オートメーション実行ロールまたは ConfigRuleName の CloudFormation 組み込み関数をサポートしていません。ロールの正確な ARN を文字列として指定し、組み込み関数を含まない完全なルール名を使用する必要があります。
正確な ARN を渡す方法の詳細については、「AWS Config のコンフォーマンスパックのサンプルテンプレート」を参照してください。サンプルテンプレートの使用中に、組織のアカウント ID と管理者アカウント ID を更新します。
B. 1 つ以上のカスタム AWS Config ルールを含むコンフォーマンスパックを使用する場合の前提条件
1 つ以上のカスタム AWS Config ルールを含むコンフォーマンスパックをデプロイする前に、AWS Lambda 関数や対応する実行ロールなどの適切なリソースを作成します。
既存のカスタム AWS Config ルールがある場合は、AWS Lambda 関数の ARN を直接指定して、そのカスタムルールの別のインスタンスをパックの一部として作成できます。
既存のカスタム AWS Config ルールがない場合は、AWS Lambda 関数を作成し、その Lambda 関数の ARN を使用できます。詳細については、「AWS Config カスタムルール」を参照してください。
AWS Lambda 関数が別の AWS アカウント アカウントに存在する場合は、適切なクロスアカウント AWS Lambda 関数の認可を使用して AWS Config ルールを作成できます。詳細については、ブログ投稿の「複数の AWS アカウント ブログ投稿間で AWS Config ルールを一元管理する方法」を参照してください。
- Same account bucket policy
AWS Config がコンフォーマンスパックのアーティファクトを保存できるようにするには、Amazon S3 バケットを提供し、以下のアクセス許可を追加する必要があります。詳細については、「バケットの命名規則」を参照してください。
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AWSConfigConformsBucketPermissionsCheck",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
]
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::delivery-bucket-name"
},
{
"Sid": "AWSConfigConformsBucketDelivery",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
]
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::delivery-bucket-name/[optional] prefix/AWSLogs/AccountId/Config/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
- Cross-account bucket policy
-
AWS Config がコンフォーマンスパックのアーティファクトを保存できるようにするには、Amazon S3 バケットを提供し、以下のアクセス許可を追加する必要があります。詳細については、バケットの命名規則を参照してください。
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AWSConfigConformsBucketPermissionsCheck",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms",
"PutConformancePack API caller user principal like arn:aws:iam::SourceAccountId:user/userName "
]
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name"
},
{
"Sid": "AWSConfigConformsBucketDelivery",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
]
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name/[optional] prefix/AWSLogs/AccountID/Config/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
},
{
"Sid": " AWSConfigConformsBucketReadAccess",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
]
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name/[optional] prefix/AWSLogs/AccountID/Config/*"
}
]
}
クロスアカウントのコンフォーマンスパックをデプロイする場合、Amazon S3 の配信バケットの名前は awsconfigconforms で始まる必要があります。
組織のコンフォーマンスパックの前提条件
入力テンプレートに自動修復設定がある場合は、その修復のオートメーション実行ロール ARN をテンプレートで指定します。指定した名前のロールが、組織のすべてのアカウント (管理およびメンバー) に存在することを確認します。PutOrganizationConformancePack を呼び出す前に、すべてのアカウントでこのロールを作成する必要があります。このロールを手動で作成することも、AWS CloudFormation スタックセットを使用してすべてのアカウントでこのロールを作成することもできます。
テンプレートで AWS CloudFormation 組み込み関数 Fn::ImportValue を使用して特定の変数をインポートする場合、その変数は、その組織のすべてのメンバーアカウントで Export
Value として定義する必要があります。
カスタム AWS Config ルールについては、複数の AWS アカウント 間で AWS Config ルールを一元管理する方法のブログを参照して適切なアクセス権限を設定してください。
組織のバケットポリシー:
AWS Config がコンフォーマンスパックのアーティファクトを保存できるようにするには、Amazon S3 バケットを提供し、以下のアクセス許可を追加する必要があります。詳細については、バケットの命名規則を参照してください。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name/*",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "customer_org_id"
},
"ArnLike": {
"aws:PrincipalArn": "arn:aws:iam::*:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
}
}
},
{
"Sid": "AllowGetBucketAcl",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "customer_org_id"
},
"ArnLike": {
"aws:PrincipalArn": "arn:aws:iam::*:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms"
}
}
}
]
}
コンフォーマンスパックを組織にデプロイする場合、Amazon S3 の配信バケットの名前は awsconfigconforms で始まる必要があります。