Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Amazon S3 バケットに条件付き書き込みを強制する

フォーカスモード
Amazon S3 バケットに条件付き書き込みを強制する - Amazon Simple Storage Service

Amazon S3 バケットポリシーを使用すると、汎用バケット内のオブジェクトアップロードに条件付き書き込みを強制できます。

バケットポリシーは、Amazon S3 バケットとその中のオブジェクトへのアクセス許可を付与できるリソースベースのポリシーです。バケット所有者のみが、ポリシーをバケットに関連付けることができます。バケットポリシーの詳細については、「Amazon S3 のバケットポリシー」を参照してください。

条件キー s3:if-match または s3:if-none-match をオプションの Condition 要素または Condition ブロックとして使用して、ポリシーが有効になるタイミングを指定できます。これらの API は条件付きヘッダーを受け付けないため、マルチパートアップロードの場合、CreateMultipartUploadUploadPart、および UploadPartCopy オペレーションを除外するには、s3:ObjectCreationOperation 条件キーを指定する必要があります。バケットで条件を使用する方法の詳細については、「条件キーを使用したバケットポリシーの例」を参照してください。

注記

バケットポリシーを使用して条件付き書き込みを強制する場合、バケットポリシーで指定されたバケットまたはプレフィックスにコピーオペレーションを実行することはできません。If-None-Match または If-Match HTTP ヘッダーのない CopyObject リクエストは 403 Access Denied エラーで失敗します。これらの HTTP ヘッダーにより行われた CopyObject リクエストは、501 Not Implemented レスポンスで失敗します。

次の例は、バケットポリシーで条件を使用して、クライアントに If-None-Match または If-Match HTTP ヘッダーの使用を強制する方法を示しています。

例 1: if-none-match ヘッダーを含む PutObject および CompleteMultipartUpload リクエストを使用したオブジェクトのアップロードのみを許可する

このポリシーでは、リクエストに if-none-match ヘッダーが含まれている場合、アカウント 111122223333、ユーザー Alice が amzn-s3-demo-bucket1 バケットに書き込むことを許可し、オブジェクトキーがバケットにまだ存在しないことを確認します。指定されたバケットへのすべての PutObject および CompleteMultipartUpload リクエストには、正常に実行するために if-none-match ヘッダーが含まれている必要があります。このヘッダーを使用すると、オブジェクトキーがバケットに存在しない場合にのみ、お客様はこのバケットに書き込むことができます。

注記

このポリシーは、CreateMultipartUploadUploadPart、および UploadPartCopy API を使用したマルチパートアップロードを許可する s3:ObjectCreationOperation 条件キーも設定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalPut", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-none-match": "false" } } }, { "Sid": "AllowConditionalPutwithMPUs", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Bool": { "s3:ObjectCreationOperation": "false" } } } ] }

例 2: if-match ヘッダーを含む PutObject および CompleteMultipartUpload リクエストを使用したオブジェクトのアップロードのみを許可する

このポリシーでは、リクエストに if-match ヘッダーが含まれている場合にのみ、アカウント 111122223333、ユーザー Alice が amzn-s3-demo-bucket1 に書き込むことができます。このヘッダーは、S3 内のオブジェクトの ETag 値を、WRITE オペレーション中に指定した値と比較します。ETag 値が一致しない場合、オペレーションは失敗します。指定されたバケットへのすべての PutObject および CompleteMultipartUpload リクエストには、正常に実行するために if-match ヘッダーが含まれている必要があります。

注記

このポリシーは、CreateMultipartUploadUploadPart、および UploadPartCopy API を使用したマルチパートアップロードを許可する s3:ObjectCreationOperation 条件キーも設定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", }, { "Sid": "BlockNonConditionalObjectCreation", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-match": "true" }, "Bool": { "s3:ObjectCreationOperation": "true" } } }, { "Sid": "AllowGetObjectBecauseConditionalPutIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*" } ] }

例 3: if-none-match または if-match ヘッダーを含むオブジェクトのアップロードリクエストのみを許可する

このポリシーでは、リクエストに if-none-match または if-match ヘッダーが含まれている場合、アカウント 111122223333、ユーザー Alice が amzn-s3-demo-bucket1 に書き込むことを許可します。これにより、Alice はバケットにキー名が存在しないオブジェクトをアップロードできます。キー名が存在する場合、オブジェクトの ETag が PUT リクエストで指定された ETag と一致すれば、Alice はオブジェクトを上書きできます。

注記

このポリシーは、CreateMultipartUploadUploadPart、および UploadPartCopy API を使用したマルチパートアップロードを許可する s3:ObjectCreationOperation 条件キーも設定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": " AllowConditionalPutifAbsent", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-none-match": "false" } } }, { "Sid": "AllowConditionalPutIfMatchEtag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-match": "false" } } }, { "Sid": "AllowConditionalObjectCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Bool": { "s3:ObjectCreationOperation": "false" } } }, { "Sid": " AllowGetObjectBecauseConditionalPutIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*" } ] }
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.