대상에 이벤트 알림 메시지를 게시할 권한 부여 - Amazon Simple Storage Service

대상에 이벤트 알림 메시지를 게시할 권한 부여

Amazon S3가 대상에 이벤트 알림 메시지를 게시할 수 있으려면 먼저 관련 API를 호출하여 SNS 주제, SQS 대기열 또는 Lambda 함수에 메시지를 게시할 수 있는 권한을 Amazon S3 보안 주체에 부여해야 합니다.

AWS Lambda 함수 호출 권한 부여

Amazon S3은 Lambda 함수를 호출하고 이벤트 메시지를 인수로 제공하여 AWS Lambda에 이벤트 메시지를 게시합니다.

Amazon S3 콘솔을 사용하여 Amazon S3 버킷에 Lambda 함수용 이벤트 알림을 구성할 때 이 콘솔은 버킷에서 함수를 호출하기 위한 권한을 Amazon S3에 부여하도록 Lambda 함수에 필수 권한을 설정합니다. 자세한 내용은 Amazon S3 콘솔을 사용하여 이벤트 알림 활성화 및 구성 섹션을 참조하세요.

또한, AWS Lambda에서 Lambda 함수를 호출할 수 있는 권한을 Amazon S3에 부여할 수도 있습니다. 자세한 내용은 AWS Lambda 개발자 안내서자습서: Amazon S3에서 AWS Lambda 사용을 참조하세요.

SNS 주제 또는 SQS 대기열로 메시지를 게시할 권한 부여

Amazon S3에 SNS 주제 또는 SQS 대기열에 메시지를 게시할 수 있는 권한을 부여하려면 대상 SNS 주제 또는 SQS 대기열에 AWS Identity and Access Management(IAM) 정책을 연결합니다.

SNS 주제 또는 SQS 대기열에 정책을 연결하는 방법에 대한 예제는 연습: 알림용 버킷 구성(SNS 주제 또는 SQS 대기열) 단원을 참조하세요. 권한에 대한 자세한 내용은 다음 단원을 참조하세요.

대상 SNS 주제에 대한 IAM 정책

다음은 대상 SNS 주제에 연결하는 AWS Identity and Access Management(IAM) 정책의 예제입니다. 이 정책을 사용하여 이벤트 알림에 대한 대상 Amazon SNS 주제를 설정하는 방법에 관한 자세한 내용은 연습: 알림용 버킷 구성(SNS 주제 또는 SQS 대기열) 단원을 참조하세요.

이 정책을 사용하려면 Amazon SNS 주제 ARN, 버킷 이름 및 버킷 소유자의 AWS 계정 ID를 업데이트해야 합니다.

{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:Region:account-id:topic-name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::awsexamplebucket1" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }

대상 SQS 대기열에 대한 IAM 정책

다음은 대상 SQS 대기열에 연결하는 IAM 정책의 예제입니다. 이 정책을 사용하여 이벤트 알림에 대한 대상 Amazon SQS 대기열을 설정하는 방법에 관한 자세한 내용은 연습: 알림용 버킷 구성(SNS 주제 또는 SQS 대기열) 단원을 참조하세요.

이 정책을 사용하려면 Amazon SQS 대기열 ARN, 버킷 이름 및 버킷 소유자의 AWS 계정 ID를 업데이트해야 합니다.

{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "arn:aws:sqs:Region:account-id:queue-name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:awsexamplebucket1" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }

Amazon SNS 및 Amazon SQS IAM 정책 모두 StringLike 조건 대신, ArnLike 조건을 정책에 지정할 수 있습니다.

"Condition": {        "StringLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" } }

AWS KMS 키 정책

SQS 대기열 또는 SNS 주제가 AWS Key Management Service(AWS KMS) 고객 관리형 키로 암호화되는 경우 Amazon S3 서비스 보안 주체에게 암호화된 주제 또는 대기열을 사용할 수 있는 권한을 부여해야 합니다. Amazon S3 서비스 보안 주체에게 권한을 부여하려면 고객 관리형 키의 주요 정책에 다음 설명을 추가합니다.

{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }

AWS KMS 키 정책에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서에서 AWS KMS에서 키 정책 사용을 참조하세요.

Amazon SQS 및 Amazon SNS에 대해 AWS KMS의 서버 측 암호화를 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.