フローログのための Amazon S3 バケットのアクセス許可
デフォルトでは、Amazon S3 バケットとそれに含まれているオブジェクトはプライベートです。バケット所有者のみが、そのバケットとそれに含まれているオブジェクトにアクセスできます。ただし、バケット所有者は、アクセスポリシーを記述することで他のリソースおよびユーザーにアクセス権限を付与することができます。
フローログを作成するユーザーがバケットを所有し、そのバケットに PutBucketPolicy
および GetBucketPolicy
許可を持っている場合、次のポリシーが自動的にそのバケットにアタッチされます。このポリシーは、バケットにアタッチされている既存のポリシーを上書きします。
それ以外の場合は、バケット所有者が、フローログ作成者の AWS アカウント ID を指定して、このポリシーをバケットに追加しなければ、フローログの作成は失敗します。詳細については、Amazon Simple Storage Service ユーザーガイドのバケットポリシーの使用を参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "
my-s3-arn
/*", "Condition": { "StringEquals": { "aws:SourceAccount":account_id
, "s3:x-amz-acl": "bucket-owner-full-control" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region
:account_id
:*" } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::bucket_name
", "Condition": { "StringEquals": { "aws:SourceAccount":account_id
}, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region
:account_id
:*" } } } ] }
my-s3-arn
に指定する ARN は、Hive と互換性のある S3 のプレフィックスを使用するかどうかによって異なります。
-
デフォルトのプレフィックス
arn:aws:s3:::
bucket_name
/optional_folder
/AWSLogs/account_id
/* -
Hive 互換の S3 プレフィックス
arn:aws:s3:::
bucket_name
/optional_folder
/AWSLogs/aws-account-id=account_id
/*
ベストプラクティスは、個々の AWS アカウント の ARN ではなく、ログ配信サービスプリンシパルに、これらのアクセス許可を付与することです。また、aws:SourceAccount
および aws:SourceArn
条件キーを使用して、混乱した使節の問題から保護することもベストプラクティスです。ソースアカウントはフローログの所有者であり、ソース ARN は、ログサービスのワイルドカード (*) ARN です。