Amazon S3 イベント通知が、サーバー側の暗号化を使用する Amazon SQS キューに配信されないのはなぜですか?

所要時間2分
0

Amazon Simple Storage Service (Amazon S3) のイベント通知が サーバー側の暗号化 (SSE) Amazon Simple Queue Service (Amazon SQS) キューに配信されません。

解決策

以下のステップを実行して、サーバー側の暗号化 (SSE) を使用する Amazon SQS キューに S3 イベント通知を設定して送信します。

カスタマーマネージド AWS KMS キーを作成し、キーポリシーを設定する

Amazon SQS キューは、お客様が管理する AWS Key Management Service (AWS KMS) キーで暗号化する必要があります。次に、暗号化されたキューを操作するアクセス権限を Amazon S3 サービスプリンシパルに付与します。

注: デフォルトの AWS マネージド KMS キーは変更できません。代わりに、このプロセスにはカスタマー管理キーを使用する必要があります。また、指定されたサービスプリンシパルへのアクセスを許可するには、KMS キーに権限を追加する必要があります。

Amazon S3 サービスプリンシパルにアクセス許可を付与するには、カスタマーマネージドキーポリシーに次のステートメントを追加します。

{  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::"111122223333":root"
      },
      "Action": "kms:*",
      "Resource": "*"
    }
  ]
}

**注:****「arn:aws:iam::"111122223333":root」**をあなたの ARN に置き換えてください。

SQS キューを作成して Amazon S3 のアクセス許可を付与する

  1. SSE を使用するように設定された Amazon SQS キューを作成します。詳細については、「キュー (コンソール) のサーバー側の暗号化 (SSE) の設定」を参照してください。
  2. Amazon S3 がキューにメッセージを送信できるようにするには、次のアクセス許可ステートメントを SQS キューに追加します。
{  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "SQS:SendMessage",
      "Resource": "arn:aws:sqs:us-east-1:111122223333:sqs-s3-kms-same-account",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:*:*:hellobucket"
        }
      }
    }
  ]
}

注: リソース値を SQS キュー ARN に、aws:SourceAccount を AWS ソースアカウント ID に、aws:SourceArn を Amazon S3 バケット ARN に置き換えます。

前の例では、顧客アカウント 123456789 が所有する S3 バケットの hellobucket が、指定された SQS キューに ObjectCreated イベント通知を送信できます。暗号化された SQS キューを操作するために必要な権限の詳細については、「キー管理」を参照してください。

S3 イベントを作成する

バケットに Amazon S3 イベントを追加するには、以下の手順を実行します。

  1. S3 コンソールを開き、S3 バケットのハイパーリンク付きの [名前] を選択します。
  2. [プロパティ] タブから [イベント通知の作成] を選択します。
  3. イベント通知の作成」ページで、次の情報を入力します。
    [イベント名] に名前を入力します。
    イベントタイプ」で、通知を受け取りたいイベントタイプを選択します。
    [宛先][SQS キュー] を選択します。
    [SQS キュー] では、キューを選択します。
  4. [変更を保存] を選択します。

Amazon S3 イベントタイプが正しく設定されていることを確認する

Amazon S3 イベント通知を設定するときは、Amazon S3 が通知を送信するようにサポートされているイベントタイプを指定する必要があります。指定していないイベントタイプが Amazon S3 バケットで発生した場合、Amazon S3 は通知を送信しません。

オブジェクトキー名フィルタが URL エンコード形式であることを確認する

イベント通知がオブジェクトキー名フィルタリングを使用するように設定されている場合、通知は特定のプレフィックスまたはサフィックスを持つオブジェクトに対してのみ発行されます。

プレフィックスまたはサフィックスに特殊文字を使用する場合は、URL エンコード形式で入力する必要があります。詳細については、「オブジェクトキー名フィルタリングを使用したイベント通知の設定」を参照してください。

**注:**フィルター内の文字を表すプレフィックスまたはサフィックスとしてワイルドカード文字 (「*」)を使用することはできません。

すべてのイベント送信先が存在することを確認する

Amazon S3 イベント通知バケットの送信先が存在しない場合、「Unable to validate the following destination configurations」というエラーが発生します。

存在しない宛先にイベントを送信するように既存のイベント通知を設定した場合は、これらのイベントを削除する必要があります。イベント通知設定を更新する前に、必ずイベントを削除してください。

**注:**同じ PutBucketNotificationConfiguration API を使用して、送信先が存在しないすべてのイベントを削除することをお勧めします。

S3 バケットと SQS キューリージョンを確認する

ある AWS リージョンの S3 バケットから別のリージョンの Amazon SQS キューに通知を送信することはできません。代わりに、Amazon Simple Notification Service (Amazon SNS) トピックを S3 バケットの送信先として設定し、別のリージョンの Amazon SQS キューを設定します。Amazon SNS は、Amazon SQS キューと AWS Lambda 関数へのクロスリージョン通知配信をサポートしています。

詳細については、「Amazon SNS メッセージを別のリージョンの Amazon SQS キューまたは Lambda関数に送信する」を参照してください。

メッセージが Amazon SQS キューに送信されたことを確認する

Amazon CloudWatch NumberOfMessagesSent メトリックスを使用して、メッセージが Amazon SQS キューに送信されたことを確認します。

詳細については、「Amazon SQS キューがメッセージを受信しないのはなぜですか?」を参照してください。

AWS サポートによるトラブルシューティング

前述のトラブルシューティング手順で問題が解決しない場合は、AWS サポートにお問い合わせください。通信には、失敗した API 呼び出しのタイムゾーンを含む RequestIdタイムスタンプを含めてください。

関連情報

Amazon SNS トピックからの通知を正常に受け取るために Amazon SQS サブスクリプションを取得するにはどうすればよいですか?

Amazon S3 イベント通知

チュートリアル: 通知用バケットの設定 (SNS トピックまたは SQS キュー)

AWS公式
AWS公式更新しました 6ヶ月前
コメントはありません