기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SQS의 액세스 거부 오류 문제 해결
다음 항목에서는 Amazon SQS API 호출의 가장 일반적인 원인 AccessDenied
또는 AccessDeniedException
오류에 대해 다룹니다. 이러한 오류를 해결하는 방법에 대한 자세한 내용은 Amazon SQS API 호출에서 발생하는 "" 또는 AccessDenied "AccessDenied예외” 오류를 해결하려면 어떻게 해야 합니까?
오류 메시지 예제:
An error occurred (AccessDenied) when calling the SendMessage operation: Access to the resource https://sqs.us-east-1.amazonaws.com/ is denied.
- 또는 -
An error occurred (KMS.AccessDeniedException) when calling the SendMessage operation: User: arn:aws:iam::xxxxx:user/xxxx is not authorized to perform: kms:GenerateDataKey on resource: arn:aws:kms:us-east-1:xxxx:key/xxxx with an explicit deny.
Amazon SQS 대기열 정책 및 IAM 정책
요청자가 Amazon SQS 작업을 수행할 수 있는 적절한 권한을 가지고 있는지 확인하려면 다음을 수행하십시오.
-
Amazon SQS API를 호출하는 IAM 보안 주체를 식별하십시오. IAM 보안 주체가 동일한 계정의 사용자인 경우 Amazon SQS 대기열 정책 또는 AWS IAM (ID 및 액세스 관리) 정책에 작업에 대한 액세스를 명시적으로 허용하는 권한이 포함되어야 합니다.
-
보안 주체가 IAM 개체인 경우:
-
오른쪽 상단을 확인하거나 명령을 사용하여 IAM 사용자 또는 역할을 식별할 수 있습니다. AWS Management Console
aws sts get-caller-identity
-
요청을 수행하는 IAM 사용자 또는 역할과 관련된 IAM 정책을 확인합니다. 다음 방법 중 하나를 사용할 수 있습니다.
-
다양한 IAM 정책 유형을 검토합니다.
-
필요한 경우 IAM 사용자 정책을 편집합니다.
-
대기열 정책을 확인하고 필요한 경우 편집하십시오.
-
-
보안 주체가 AWS 서비스인 경우 Amazon SQS 대기열 정책에서 액세스를 명시적으로 허용해야 합니다.
-
보안 주체가 교차 계정 보안 주체인 경우 Amazon SQS 대기열 정책과 IAM 정책 모두 액세스를 명시적으로 허용해야 합니다.
-
정책에서 조건 요소를 사용하는 경우 조건이 액세스를 제한하는지 확인하십시오.
중요
두 정책 중 하나의 명시적 거부는 명시적 허용보다 우선합니다. 다음은 Amazon SQS 정책의 몇 가지 기본 예시입니다.
AWS Key Management Service 권한
Amazon SQS 대기열에 고객이 관리하는 AWS KMS key서버 측 암호화 (SSE) 가 켜져 있는 경우 생산자와 소비자 모두에게 권한을 부여해야 합니다. 대기열이 암호화되었는지 확인하려면 대기열 콘솔의 암호화에서 GetQueueAttributes
API KmsMasterKeyId
속성을 사용하거나 대기열 콘솔에서 사용할 수 있습니다.
-
{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<Key ARN>" }
-
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<Key ARN>" }
-
계정 간 액세스에 필요한 권한:
{ "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" }
다음 중 하나를 사용하여 Amazon SQS 대기열에 대한 암호화를 활성화할 수 있습니다.
-
SSE-Amazon SQS (Amazon SQS 서비스에서 생성 및 관리하는 암호화 키)
-
AWS 관리형 기본 키 (alias/aws/sqs)
하지만 AWS-managed KMS 키를 사용하는 경우 기본 키 정책을 수정할 수 없습니다. 따라서 다른 서비스 및 교차 계정에 대한 액세스를 제공하려면 고객 관리 키를 사용하십시오. 이렇게 하면 키 정책을 편집할 수 있습니다.
VPC 엔드포인트 정책
Amazon 가상 사설 클라우드 (Amazon VPC) 엔드포인트를 통해 Amazon SQS에 액세스하는 경우, Amazon SQS VPC 엔드포인트 정책에서 액세스를 허용해야 합니다. Amazon SQS용 Amazon VPC 엔드포인트에 대한 정책을 생성하여 다음을 지정할 수 있습니다.
-
작업을 수행할 수 있는 보안 주체.
-
수행할 수 있는 작업.
-
작업을 수행할 수 있는 리소스.
다음 예제에서 VPC 엔드포인트 정책은 IAM 사용자가 Amazon SQS MyUser
대기열에 메시지를 보낼 수 있도록 지정합니다. MyQueue
다른 작업, IAM 사용자 및 Amazon SQS 리소스는 VPC 엔드포인트를 통한 액세스가 거부됩니다.
{ "Statement": [{ "Action": ["sqs:SendMessage"], "Effect": "Allow", "Resource": "arn:aws:sqs:us-east-2:123456789012:
MyQueue
", "Principal": { "AWS": "arn:aws:iam:123456789012:user/MyUser
" } }] }
조직 서비스 제어 정책
조직에 AWS 계정 속해 있는 경우 AWS Organizations 정책에 따라 Amazon SQS 대기열에 액세스하지 못할 수 있습니다. 기본적으로 AWS Organizations 정책은 Amazon SQS에 대한 요청을 차단하지 않습니다. 하지만 Amazon SQS 대기열에 대한 액세스를 차단하도록 AWS Organizations 정책을 구성하지 않았는지 확인하십시오. AWS Organizations 정책을 확인하는 방법에 대한 지침은 사용 설명서의 모든 정책 나열을 참조하십시오.AWS Organizations