Amazon Simple Queue Service(Amazon SQS) 대기열에 액세스하려고 합니다. 대기열에 액세스하려면 어떤 SQS 액세스 정책 및 AWS Identity and Access Management(IAM) 정책 권한이 필요합니까?
해결 방법
Amazon SQS 대기열에 액세스하려면 SQS 액세스 정책, IAM 정책 또는 둘 다에 권한을 추가해야 합니다. 특정 권한 요구 사항은 SQS 대기열과 IAM 역할이 동일한 계정의 것인지에 따라 다릅니다.
동일 계정
SQS 액세스 정책 또는 IAM 정책에서 액세스를 허용하는 명령문이 필요합니다.
참고: SQS 액세스 정책 또는 IAM 정책에서 액세스를 명시적으로 허용하지만 다른 정책에서 액세스를 명시적으로 거부하면 대기열에 대한 액세스가 거부됩니다.
| | |
---|
IAM 사용자 정책 | SQS 액세스 정책 | 결과 |
허용 | 허용 | 허용 |
허용 | 허용 또는 거부 안 함 | 허용 |
허용 | 거부 | 거부 |
허용 또는 거부 안 함 | 허용 | 허용 |
허용 또는 거부 안 함 | 허용 또는 거부 안 함 | 암시적 거부 |
허용 또는 거부 안 함 | 거부 | 거부 |
거부 | 허용 | 거부 |
거부 | 허용 또는 거부 안 함 | 거부 |
거부 | 거부 | 거부 |
다른 계정
SQS 액세스 정책과 IAM 정책 모두에서 액세스를 허용하는 명령문이 필요합니다.
| | |
---|
IAM 사용자 정책 | SQS 액세스 정책 | 결과 |
허용 | 허용 | 허용 |
허용 | 허용 또는 거부 안 함 | 암시적 거부 |
허용 | 거부 | 거부 |
허용 또는 거부 안 함 | 허용 | 암시적 거부 |
허용 또는 거부 안 함 | 허용 또는 거부 안 함 | 암시적 거부 |
허용 또는 거부 안 함 | 거부 | 거부 |
거부 | 허용 | 거부 |
거부 | 허용 또는 거부 안 함 | 거부 |
거부 | 거부 | 거부 |
예제 정책 문
다음 예제 정책은 SQS 대기열에 대한 교차 계정 액세스를 허용하기 위해 IAM 정책 및 SQS 대기열 액세스 정책에 설정해야 하는 권한을 보여 줍니다.
첫 번째 정책은 username1이 리소스arn:aws:sqs:us-east-1:123456789012:queue_1로 메시지를 보낼 수 있는 권한을 부여합니다.
두 번째 정책은 username1이 메시지를 대기열로 보낼 수 있도록 허용합니다.
이러한 정책에 대한 자세한 내용은IAM 정책 유형: 사용 방법 및 시기를 참조하세요.
username1에 대한 IAM 정책 문 예제
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sqs:SendMessage",
"Resource": "arn:aws:sqs:us-east-1:123456789012:queue_1"
}]
}
queue_1에 대한 SQS 리소스 정책 문 예제
{
"Version": "2012-10-17",
"Id": "Queue1_Policy",
"Statement": [{
"Sid":"Queue1_AllActions",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:user/username1"
]
},
"Action": "sqs:SendMessage",
"Resource": "arn:aws:sqs:us-east-1:123456789012:queue_1"
}]
}