사용자 지정 Amazon SQS 액세스 정책 언어 예제 - Amazon Simple Queue Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용자 지정 Amazon SQS 액세스 정책 언어 예제

다음은 일반적인 Amazon SQS 액세스 정책의 예제입니다.

예제 1: 1개의 계정에 권한 부여

다음 Amazon SQS 정책 예제는 AWS 계정 444455556666이 소유한 queue2에 대해 전송 및 수신할 수 있는 권한을 AWS 계정 111122223333에 부여합니다.

{ "Version": "2012-10-17", "Id": "UseCase1", "Statement" : [{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2" }] }

예제 2: 1개 이상의 계정에 권한 부여

다음 예제 Amazon SQS 정책에서는 특정 기간 동안 사용자 계정에서 소유하는 대기열에 대한 액세스 권한을 하나 이상의 AWS 계정에 부여합니다. AddPermission 작업은 대기열에 대한 액세스 권한을 부여할 때 시간 제한 지정을 허용하지 않기 때문에 이 정책을 작성하고 SetQueueAttributes 작업을 사용하여 Amazon SQS에 업로드해야 합니다.

{ "Version": "2012-10-17", "Id": "UseCase2", "Statement" : [{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": [ "111122223333", "444455556666" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2", "Condition": { "DateLessThan": { "AWS:CurrentTime": "2009-06-30T12:00Z" } } }] }

예제 3: Amazon EC2 인스턴스의 요청에 권한 부여

다음 예제 Amazon SQS 정책에서는 Amazon EC2 인스턴스에서 오는 요청에 대한 액세스를 부여합니다. 이 예제는 "예제 2: 1개 이상의 계정에 권한 부여" 예제를 보강한 것으로, 2009년 6월 30일 12시(정오)(UTC) 이전까지 액세스할 수 있고 액세스 IP 범위를 203.0.113.0/24로 제한합니다. AddPermission 작업은 대기열에 대한 액세스 권한을 부여할 때 IP 주소 제한 지정을 허용하지 않기 때문에 이 정책을 작성하고 SetQueueAttributes 작업을 사용하여 Amazon SQS에 업로드해야 합니다.

{ "Version": "2012-10-17", "Id": "UseCase3", "Statement" : [{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2", "Condition": { "DateLessThan": { "AWS:CurrentTime": "2009-06-30T12:00Z" }, "IpAddress": { "AWS:SourceIp": "203.0.113.0/24" } } }] }

예제 4: 특정 계정에 대한 액세스 거부

다음은 Amazon SQS 정책이 대기열에 대한 특정 AWS 계정 액세스를 거부한 예입니다. 이 예는 "예제 1: 1개의 계정에 권한 부여" 예제를 보강합니다. 즉, 지정된 AWS 계정에 대한 액세스를 거부합니다. AddPermission 작업은 대기열에 대한 액세스 거부를 허용하지 않고 대기열에 대한 액세스 권한 부여만 허용하기 때문에 이 정책을 작성하고 SetQueueAttributes 작업을 사용하여 Amazon SQS에 업로드해야 합니다.

{ "Version": "2012-10-17", "Id": "UseCase4", "Statement" : [{ "Sid": "1", "Effect": "Deny", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2" }] }

예제 5: VPC 엔드포인트에서 온 액세스가 아닌 경우 액세스 거부

다음 예제 Amazon SQS 정책은 queue1에 대한 액세스를 제한합니다. 111122223333은 VPC 엔드포인트 ID vpce-1a2b3c4d(aws:sourceVpce 조건을 사용하여 지정됨)에서만 SendMessageReceiveMessage 작업을 수행할 수 있습니다. 자세한 설명은 Amazon SQS용 Amazon Virtual Private Cloud 엔드포인트 섹션을 참조하세요.

참고
  • aws:sourceVpce 조건은 VPC 엔드포인트 리소스의 ARN을 요구하지 않고 VPC 엔드포인트 ID만 요구합니다.

  • 두 번째 문의 모든 Amazon SQS 작업(sqs:*)을 거부하도록 다음 예제를 수정하여 특정 VPC 엔드포인트에 대한 모든 작업을 제한할 수 있습니다. ​그러나 그러한 정책 문은 모든 작업(대기열 권한 수정을 위한 관리 작업 포함)을 정책에 정의된 특정 VPC 엔드포인트를 통해서만 해야 하도록 규정하게 될 것이므로 앞으로 사용자가 대기열 권한을 수정하지 못하게 될 가능성이 있습니다.

{ "Version": "2012-10-17", "Id": "UseCase5", "Statement": [{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1" }, { "Sid": "2", "Effect": "Deny", "Principal": "*", "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1a2b3c4d" } } } ] }