Storage Stackで Lambda およびSNSの障害を監視および追跡する場合は、スタックを作成または更新するときに、次のようにパラメータを指定します。
  • BucketListenerDLQARN:BucketListener機能の配信不能通知先のARN。
  • PostScanActionTagDLQARN:ポストスキャン処理機能の配信不能メッセージ送信先のARN。
  • ScanResultTopicDLQARN:検索結果トピックSNSの配信不能キューのARN。
  • KMSKeyARNForDLQSSE: デッドレターキューのKMSマスターキーのARN。SQSでサーバ側の暗号化が有効になっていない場合は、空白のままにします。
注意
注意
配信不能送信先/キューとしてサポートされるのはSQSのみです。また、SQSは同じAWSアカウントを使用してデプロイし、 Storage Stackと同じ AWSリージョン に配置する必要があります。

前提条件

デッドレターキューを備えたStorage Stackを配置するには
  • [Update SQS policy]
    • 次のAWS CLIコマンドを入力します。
      aws sqs get-queue-attributes --queue-url SQS-URL --attribute-names Policy --query Attributes > sqs-policy.json
      どこに...
      SQS-URL は、デッドレターキューとして使用しているSQSのURLに置き換えられます。
    • sqs-policy.jsonを編集し、新しいStatementオブジェクトを挿入します。
        {
            "Sid": "Grant permission",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "sqs:SendMessage",
            "Resource": "*"
        }
      
    • 次のAWS CLIコマンドを入力します。
      aws sqs set-queue-attributes --queue-url SQS-URL --attributes file://sqs-policy.json
      SQS-URL は、デッドレターキューとして使用しているSQSのURLに置き換えられます。
    または、次のシェルスクリプトを実行します。
      new_policy=$(aws sqs get-queue-attributes --queue-url SQS-URL --attribute-names Policy --query Attributes \
          | jq '.Policy' -r \
          | jq '.Statement[.Statement| length] |= . + {"Sid":"Grant permission","Effect":"Allow","Principal":{"AWS":"*"},"Action":"SQS:SendMessage","Resource":"*"}' -c)
      echo '{}' | jq --arg variable "$new_policy" '.Policy = $variable' > sqs-policy.json
      aws sqs set-queue-attributes --queue-url SQS-URL --attributes file://sqs-policy.json
    
    SQS-URL は、デッドレターキューとして使用しているSQSのURLに置き換えられます。
  • [(Optional) Update KMS key policy if enabling DLQ encryption]
    • 次のAWS CLIコマンドを入力します。
      aws kms get-key-policy --key-id KMS-MASTER-KEY-ARN-FOR-DLQ --policy-name default --output text > key-policy.json
      どこに...
      KMS-MASTER-KEY-ARN-FOR-DLQ は、DLQ暗号化に使用したKMS鍵のARNに置き換えられます。
    • key-policy.jsonを編集し、新しい [Statement] オブジェクトを挿入します。
        {
            "Sid": "Grant sns permission",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "*"
        }
      
      どこに...
      BucketListenerRoleARN Storage StackのbucketListenerのARNに置き換えられます。
    • 次のAWS CLIコマンドを入力します。
      aws kms put-key-policy --key-id KMS-MASTER-KEY-ARN-FOR-DLQ --policy-name default --policy file://key-policy.json
      どこに...
      KMS-MASTER-KEY-ARN-FOR-DLQ は、DLQ暗号化に使用したKMS鍵のARNに置き換えられます