Amazon S3 버킷의 흐름 로그에 대한 권한 - Amazon Virtual Private Cloud

Amazon S3 버킷의 흐름 로그에 대한 권한

기본적으로 Amazon S3 버킷과 버킷에 포함된 객체는 비공개입니다. 버킷 소유자만이 해당 버킷과 그 안에 저장된 객체에 액세스할 수 있습니다. 그러나 버킷 소유자는 액세스 정책을 작성하여 다른 리소스 및 사용자에게 액세스 권한을 부여할 수 있습니다.

흐름 로그를 생성하는 사용자가 버킷을 소유하고 해당 버킷에 대한 PutBucketPolicyGetBucketPolicy 권한을 소유한 경우, 다음 정책을 해당 버킷에 자동으로 연결합니다. 이 정책은 버킷에 연결된 모든 기존 정책을 덮어씁니다.

그렇지 않으면 버킷 소유자가 이 정책을 버킷에 추가하고 흐름 로그 작성자의 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:SourceAccountaws:SourceArn 조건 키를 사용하는 것 좋습니다. 소스 계정은 흐름 로그의 소유자이고 원본 ARN은 로그 서비스의 와일드카드(*) ARN입니다.