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:Get*", "s3:List*" ], "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입니다.