SQS キューポリシーの公開アクセス

SQS キューへのアクセスを、必要な主体とメッセージ操作に限定します。

説明

SQS キューポリシーで Principal: "*" にメッセージ操作を許可すると、想定外の主体がキューにアクセスできるおそれがあります。実際のアクセスには、適用される条件や明示的な拒否も影響します。

想定される影響

許可された操作によっては、未承認のメッセージが送信されたり、キュー内のメッセージが外部に漏れたりするおそれがあります。

対処方法

必要な主体とキュー ARN を指定し、送信・受信の権限はそれぞれ必要な場合だけ付与してください。他のキューポリシーと IAM 権限も確認してください。

例

この例は同じ送信・受信権限の対象を、公開アクセスから特定のアカウントに限定します。Queues などの接続設定は省略しています。アカウント単位の許可では、そのアカウント内の権限委任も確認してください。

変更前

yaml
Resources:
  SampleSQSPolicy:
    Type: AWS::SQS::QueuePolicy
    Properties:
      PolicyDocument:
        Statement:
          - Action:
              - SQS:SendMessage
              - SQS:ReceiveMessage
            Effect: Allow
            Resource: arn:aws:sqs:us-east-2:444455556666:queue2
            Principal: "*"

変更後

yaml
Resources:
  SampleSQSPolicy:
    Type: AWS::SQS::QueuePolicy
    Properties:
      PolicyDocument:
        Statement:
          - Action:
              - SQS:SendMessage
              - SQS:ReceiveMessage
            Effect: Allow
            Resource: arn:aws:sqs:us-east-2:444455556666:queue2
            Principal:
              AWS:
                - "111122223333"

参考資料