최소 권한 액세스를 적용하도록 SQS 액세스 정책을 업데이트하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Simple Queue Service(Amazon SQS) 대기열의 VPC 엔드포인트에 대한 액세스를 제한해서 악의적인 공격을 격리하고 싶습니다. 다른 VPC 엔드포인트에서의 액세스를 거부하고 AWS Lambda 함수 이벤트 소스 권한을 제한하고 싶습니다.

해결 방법

SQS 대기열을 보호하려면 SQS 액세스 정책에 최소 권한 원칙을 적용합니다. 이벤트 소스 매핑을 통해 지정된 VPC 엔드포인트와 지정된 Lambda 함수에서만 요청을 허용하여 대기열의 모든 악의적인 공격을 격리할 수 있습니다. 다음 SQS 액세스 정책을 구현하여 대기열을 보호하고 공격을 격리할 수 있습니다.

{
  "Version": "2012-10-17",
  "Id": "default_policy_ID",
  "Statement": [
    {
      "Sid": "owner_statement",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:XXXXXXX:root"
      },
      "Action": "SQS:*",
      "Resource": "arn:aws:sqs:us-east-1:XXXXXXXX:test.fifo"
    },
    {
      "Sid": "RestrictSendReceiveToVpce",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "sqs:SendMessage",
        "sqs:ReceiveMessage",
        "sqs:DeleteMessage",
        "sqs:DeleteQueue",
        "sqs:PurgeQueue"
      ],
      "Resource": "arn:aws:sqs:us-east-1: XXXXXX:test.fifo",
      "Condition": {
        "ArnNotEquals": {
         "aws:PrincipalArn": "Lambda execution role arn"
        },
        "StringNotEquals": {
          "aws:SourceVpce": "vpce-XXXXX"
        }
      }
    }
  ]
}

이 SQS 액세스 정책은 다음을 수행합니다.

  • VPC 엔드포인트가 요청할 때 제공된 aws:sourceVpce가 아닌 경우 정책은 SQS 대기열로 전송된 클라이언트 메시지를 거부합니다.
  • Lambda 함수의 실행 역할이 PrincipalArn이 아닌 경우 정책이 Lambda 함수의 권한을 거부합니다.

정책의 ArnNotEqualsStringNotEquals 조건은 OR 평가 논리를 사용합니다. 두 진술 중 하나가 참인 경우 요청이 허용됩니다.

조건의 평가 논리에 대한 자세한 내용은 여러 키 또는 값으로 조건 생성을 참조하십시오.


관련 정보

자습서: Amazon Virtual Private Cloud에서 Amazon SQS 대기열로 메시지 전송

AWS 공식
AWS 공식업데이트됨 2년 전