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

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

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

대상에 이벤트 알림 메시지를 게시하는 문제를 해결하려면 Amazon Simple Notification Service 주제에 Amazon S3 이벤트 알림을 게시할 때의 문제 해결을 참조하십시오.

AWS Lambda 함수 호출 권한 부여

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

Amazon S3 콘솔을 사용하여 Amazon S3 버킷에서 Lambda 함수에 대한 이벤트 알림을 구성할 때 콘솔은 Lambda 함수에 대해 필요한 권한을 설정합니다. 이는 Amazon S3가 버킷에서 함수를 호출할 수 있는 권한을 갖도록 하기 위한 것입니다. 자세한 내용은 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 대기열) 섹션을 참조하십시오.

{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "Example SNS topic policy", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "SNS-topic-ARN", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }, "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 조건을 정책에 지정할 수 있습니다.

ArnLike를 사용하는 경우 ARN의 파티션, 서비스, 계정 ID, 리소스 유형 및 리소스 ID 부분이 요청 컨텍스트의 ARN과 정확히 일치해야 합니다. 리전 및 리소스 경로만 부분 매칭이 허용됩니다.

ArnLike 대신 StringLike를 사용하는 경우 매칭에서는 ARN 구조를 무시하고 와일드카드가 적용된 부분에 관계없이 부분 일치를 허용합니다. 자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소를 참조하십시오.

"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의 서버 측 암호화를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.