Amazon SQS의 액세스 거부 오류 문제 해결 - Amazon Simple Queue Service

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

Amazon SQS의 액세스 거부 오류 문제 해결

다음 항목에서는 Amazon SQS API 호출의 가장 일반적인 원인 AccessDenied 또는 AccessDeniedException 오류에 대해 다룹니다. 이러한 오류를 해결하는 방법에 대한 자세한 내용은 Amazon SQS API 호출에서 발생하는 "" 또는 AccessDenied "AccessDenied예외” 오류를 해결하려면 어떻게 해야 합니까? 를 참조하십시오. AWS 지식 센터 안내서에서

오류 메시지 예제:

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 Consoleaws sts get-caller-identity

  • 보안 주체가 AWS 서비스인 경우 Amazon SQS 대기열 정책에서 액세스를 명시적으로 허용해야 합니다.

  • 보안 주체가 교차 계정 보안 주체인 경우 Amazon SQS 대기열 정책과 IAM 정책 모두 액세스를 명시적으로 허용해야 합니다.

  • 정책에서 조건 요소를 사용하는 경우 조건이 액세스를 제한하는지 확인하십시오.

중요

두 정책 중 하나의 명시적 거부는 명시적 허용보다 우선합니다. 다음은 Amazon SQS 정책의 몇 가지 기본 예시입니다.

AWS Key Management Service 권한

Amazon SQS 대기열에 고객이 관리하는 AWS KMS key서버 측 암호화 (SSE) 가 켜져 있는 경우 생산자와 소비자 모두에게 권한을 부여해야 합니다. 대기열이 암호화되었는지 확인하려면 대기열 콘솔의 암호화에서 GetQueueAttributesAPI KmsMasterKeyId 속성을 사용하거나 대기열 콘솔에서 사용할 수 있습니다.

다음 중 하나를 사용하여 Amazon SQS 대기열에 대한 암호화를 활성화할 수 있습니다.

하지만 AWS-managed KMS 키를 사용하는 경우 기본 키 정책을 수정할 수 없습니다. 따라서 다른 서비스 및 교차 계정에 대한 액세스를 제공하려면 고객 관리 키를 사용하십시오. 이렇게 하면 키 정책을 편집할 수 있습니다.

VPC 엔드포인트 정책

Amazon 가상 사설 클라우드 (Amazon VPC) 엔드포인트를 통해 Amazon SQS에 액세스하는 경우, Amazon SQS VPC 엔드포인트 정책에서 액세스를 허용해야 합니다. Amazon SQS용 Amazon VPC 엔드포인트에 대한 정책을 생성하여 다음을 지정할 수 있습니다.

  1. 작업을 수행할 수 있는 보안 주체.

  2. 수행할 수 있는 작업.

  3. 작업을 수행할 수 있는 리소스.

다음 예제에서 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