複数のCloudTrailアカウントの操作🔗
以下は、複数アカウントのAWS CloudTrailログ収集のための権限設定例を示します。
S3バケットポリシーの更新🔗
AWS CloudTrail収集用のS3バケットポリシーは、次の例のように更新してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSCloudTrailAclCheck20131101",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::myBucketName"
},
{
"Sid": "AWSCloudTrailWrite20131101",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": [
"arn:aws:s3:::myBucketName/[optional] myLogFilePrefix/AWSLogs/111111111111/*",
"arn:aws:s3:::myBucketName/[optional] myLogFilePrefix/AWSLogs/222222222222/*"
],
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
暗号化ログ用のLambdaへのkmsDecrypt権限の追加🔗
複数アカウントで暗号化されたログの場合、各アカウントのログはカスタマー管理キーで暗号化されます。そのため、それぞれのキーに対してLambda実行ロールに権限を付与します。
"Sid": "Grant CloudTrail log decrypt permissions",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::<account number where RedCloak lambda is deployed>:role/<redcloak-cloudtrail-LambdaIamRole as generated by Cloudformation>"
]
}
Lambdaロール自体にも、各ソースアカウントキーに対してkms:Decrypt権限を追加する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
],
"Resource": [
"arn:aws:kms:eu-west-1:<source account 1>:key/<customer managed key id>",
"arn:aws:kms:eu-west-1:<source account 2>:key/<customer managed key id>"
]
}
]
}
次のスニペットはCloudTrailのS3バケットポリシーから削除してください(前述のサンプルポリシーを参考にしてください)。