如何更新我的 SQS 存取政策以套用最低權限存取?

1 分的閱讀內容
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 評估邏輯。如果任一陳述式為 true,則將允許請求。

如需有關條件評估邏輯的詳細資訊,請參閱建立具有多個索引鍵或值的條件


相關資訊

教學課程: 從 Amazon Virtual Private Cloud 傳送訊息至 Amazon SQS 佇列

AWS 官方
AWS 官方已更新 2 年前