대기열 거부 정책을 사용할 때 Amazon SQS 대기열 액세스 문제를 해결하고 방지하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 5월 19일

대기열 거부 정책으로 인해 Amazon Simple Queue Service(Amazon SQS) 대기열에 액세스할 수 없습니다. Amazon SQS 대기열에 다시 액세스할 수 있는 방법은 무엇이며 액세스 권한을 다시 잃지 않으려면 어떻게 해야 합니까?

간략한 설명

대기열 거부 정책으로 인해 Amazon SQS 대기열에 액세스할 수 없는 경우 AWS 계정 루트 사용자 자격 증명을 사용하여 대기열에 액세스하십시오. 또는 해당되는 경우 정책에서 제외된 엔터티를 사용하여 대기열에 액세스해 봅니다.

대기열 거부 정책을 사용할 때 Amazon SQS 대기열 액세스 손실을 방지하기 위해 따라할 수 있는 몇 가지 모범 사례도 있습니다.

다음 거부 정책 예제는 모든 Amazon SQS 대기열 작업에 대한 모든 AWS Identity and Access Management(IAM) 엔터티 액세스를 거부합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "deny-sqs-actions",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "SQS:*",
      "Resource": "queueName"
    }
  ]
}

해결 방법

Amazon SQS 대기열 액세스 문제 해결

Amazon SQS 액세스 정책에서 거부 정책을 사용하는 동안 Amazon SQS 대기열에 액세스할 수 없는 경우 다음 단계를 수행하세요.

  1. 루트 사용자 자격 증명을 사용하여 대기열에 액세스합니다. 계정 소유자 루트 사용자 자격 증명은 계정의 모든 리소스에 대한 전체 액세스를 허용합니다. 여기에는 Amazon SQS 대기열에 연결된 모든 리소스 거부 정책 제거가 포함됩니다.
  2. 거부 정책이 특정 엔터티로 제한되는 경우 정책에서 제외된 엔터티를 사용하여 액세스해 봅니다.
    참고: 제외된 엔터티에 대기열에 액세스하는 데 필요한 권한이 있는지 확인합니다.

루트 사용자 자격 증명을 사용할 수 없거나 거부 정책에서 제외된 엔터티가 확실하지 않은 경우 AWS Support에 문의하세요. 지원 사례를 생성하고 다음 정보를 포함합니다.

  1. 루트 사용자 자격 증명을 사용하여 Amazon SQS 대기열에 액세스하려고 시도했는지 확인합니다. 루트 사용자 자격 증명을 사용할 수 없는 이유 또는 루트 사용자 자격 증명을 사용해도 문제가 해결되지 않는 이유를 포함합니다.
  2. 대기열 소유자인지 확인합니다.
  3. 대기열 액세스가 필요한 자세한 이유를 제공합니다.

Amazon SQS 대기열에 대한 액세스 손실 방지

Amazon SQS 대기열에 대한 액세스가 손실되지 않도록 하려면 대기열 액세스 정책에서 거부 정책을 사용할 때 다음 모범 사례를 따르세요.

  1. 대기열에 대한 액세스 권한을 완전히 잃을 수 있으므로 루트 사용자 계정을 명시적으로 거부하지 마세요.
  2. 허용 정책을 거부 정책과 함께 사용하여 대기열에 계속 액세스할 수 있는 엔터티가 있는지 확인합니다.
    참고: 거부 정책의 조건과 허용 정책이 일치하지 않는 한 허용 정책을 거부 정책이 재정의할 수 있습니다. 자세한 내용은 권한 부여를 참조하세요.

허용거부 문을 포함한 정책 예제:

{
   "Version": "2012-10-17",
   "Id": "Queue1_Policy_UUID",
   "Statement": [{
      "Sid":"Queue1_Allow_Access",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::111122223333:user/User1"},
      "Action": “sqs:*",
      "Resource": "queueName"
   }, {
      "Sid":"Queue1_Deny_Access",
      "Effect": "Deny",
      “NotPrincipal": {"AWS": "arn:aws:iam::111122223333:user/User1"},
      "Action": "sqs:*",
      "Resource": "queueName"
   }]
}

이 정책 예제는 다음을 수행합니다.

  • 특정 IAM 사용자(User1)가 지정된 Amazon SQS 대기열의 모든 Amazon SQS 작업에 액세스할 수 있도록 허용합니다.
  • 지정된 IAM 사용자(User1)를 제외한 모든 보안 주체에 대한 대기열 액세스를 거부합니다.

거부 정책의 ‘NotPrincipal’은 지정된 보안 주체를 제외합니다. 그러나 제외된 보안 주체에 액세스 권한을 부여하려면 Allow 문이 필요합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?