ワイルドカードプリンシパルに広い権限を付与する SQS ポリシー

SQS の主体、操作、リソースを、必要なプロデューサーとコンシューマーに限定してください。

説明

SQS キューポリシーで Principal: "*" と sqs:* のような広い操作権限を組み合わせると、意図しない主体がキューを利用できる可能性があります。実際のアクセスは、条件、明示的な拒否、適用される他の権限制御によって変わります。SQS の一部の管理操作は、クロスアカウントの権限委任に対応していません。

メッセージのプロデューサーとコンシューマーを区別し、それぞれに必要な権限だけを付与してください。公開利用が不要なキューはアクセス範囲を制限する必要があります。

想定される影響

  • メッセージ送信権限が悪用されると、偽造メッセージや大量の要求で後続処理が妨げられるおそれがあります。
  • メッセージの受信・削除権限も適用される場合、情報漏えいや未処理メッセージの消失につながる可能性があります。

対処方法

  1. Principal には必要なアカウント、ロール、サービスだけを指定し、操作をプロデューサーとコンシューマーの用途に合わせて制限してください。
  2. Resource を対象キューの ARN に限定し、サービス連携には対応する送信元条件を追加してください。
  3. 既存のキューポリシーと他の許可を確認して不要な権限を削除し、正常な送受信と未承認のアクセスの拒否を試験してください。

例

アカウント ID とロール ARN を実際の承認済みの値に置き換えてください。ロールとアプリケーションの構成は省略しています。

変更前

yaml
- name: SQS 큐 생성
  community.aws.sqs_queue:
    name: my-queue1
    region: ap-southeast-1
    policy:
      Version: "2012-10-17"
      Statement:
        - Effect: Allow
          Action: "sqs:*"
          Resource: "*"
          Principal: "*"

条件を付けずに、ワイルドカードプリンシパルに広い SQS 権限を許可します。業務に必要な主体と操作に絞ってください。

変更後

yaml
- name: SQS 큐 생성
  community.aws.sqs_queue:
    name: my-queue1
    region: ap-southeast-1
    policy:
      Version: "2012-10-17"
      Statement:
        - Effect: Allow
          Action: sqs:SendMessage
          Resource: arn:aws:sqs:ap-southeast-1:123456789012:my-queue1
          Principal:
            AWS: arn:aws:iam::123456789012:role/app-producer-role

このステートメントは、指定したキューへのメッセージ送信だけを対象ロールに許可します。ロールの権限全体や他のポリシーを制限するものではないため、併せて確認してください。

参考資料