Amazon S3 の追加設定情報 - Mule 4

Create Object 操作

Create Object​ 操作では、​Content Length​ を 0 より大きい値に設定します。​Content Length​ が 0 に設定されていると、​Create Object​ 操作で 0 バイトのオブジェクトが作成されます。

AWS KMS マスターキーを使用する

顧客管理マスターキーを使用して S3 バケットに保存するオブジェクトを暗号化するには、​Create Object​ 設定の ​KMS Master Key​ 項目で顧客マスターキー ID を指定します。

ソース操作を開始する前に

Amazon S3 ソース操作は Amazon SQS を使用して、S3 バケットで新しいオブジェクトが作成または削除されたときに通知します。

On New Object​ と ​On Deleted Object​ の 2 つの Amazon S3 ソース操作のシナリオがあります。

  1. キューがすでに作成​および指定されている

  2. キューがソースによって作成​されている

キューがすでに作成されている

すでに存在するキューのソースを正しく使用するには、Amazon SQS キューに対して次のアクションを有効にする必要があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sqs:DeleteMessage",
                "sqs:GetQueueUrl",
                "sqs:ReceiveMessage",
                "sqs:GetQueueAttributes"
            ],
            "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:QUEUE_NAME"
        }
    ]
}
json

さらに、S3 バケットで新規オブジェクトが作成または削除されたときにキューがメッセージを受信できるようにするには、次の形式でキューのポリシーを作成します。

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:REGION:ACCOUNT_ID:QUEUE_NAME/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "Sid1593770403887",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "SQS:SendMessage",
      "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:QUEUE_NAME",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:::BUCKET_NAME"
        }
      }
    }
  ]
}
json

キューがソースによって作成されている

キューがソース操作によって作成されている場合、キュー名にはプレフィックス ​MULE-S3-TRIGGER​ が付いています。

キューがソースによって作成されている場合、ユーザーにはキューの作成とキュー属性の設定の両方に対する権限が必要です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sqs:DeleteMessage",
                "sqs:ReceiveMessage",
                "sqs:GetQueueAttributes",
                "sqs:CreateQueue",
                "sqs:SetQueueAttributes"
                "sqs:GetQueueUrl"
            ],
            "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:MULE-S3-TRIGGER-*"
        }
    ]
}
json

キューがソース操作によって作成されている場合、S3 オブジェクトがバケット内で次の形式で作成または削除されると、SQS ポリシーがキューに追加されます。

{
  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
    },
      "Action": "SQS:SendMessage",
      "Resource":QUEUE_ARN,
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "BUCKET_ARN"
        }
      }
    }
  ]
}
json

S3 ポリシーバケット

S3 ポリシーの場合、両方のケースで次の形式を使用します。

{
    "Version": "2012-10-17",
    "Id": "Policy1593761427184",
    "Statement": [
        {
            "Sid": "Stmt1593760119344",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT_ID:user/test"
            },
            "Action": "SPECIFIC_ACTION",
            "Resource": "arn:aws:s3:::BUCKET_NAME/*"
        },
        {
            "Sid": "Stmt1593760259223",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT_ID:user/test"
            },
            "Action": ["s3:PutBucketNotification", "s3:GetBucketNotification"],
            "Resource": "arn:aws:s3:::BUCKET_NAME"
        }
    ]
}
json

この例では、指定されたソース操作に応じて、​SPECIFIC_ACTION​ は ​s3:PutObject​ または ​s3:DeleteObject​ です。

次のステップ

マスターキーを設定してログイン情報を提供する方法を理解したら、​『例』​を試すことができます。