コンテンツにスキップ

複数の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バケットポリシーから削除してください(前述のサンプルポリシーを参考にしてください)。

"Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control"
        }
}