PUT Bucket policy
バケットポリシーを追加および更新します。既にバケットがバケットポリシーを持っている場合、完全に置き換えられます。
- バケットの所有者は常にこの操作を行うことができます
- 対象バケットに対する PutBucketPolicy 権限がバケットポリシーで付与されている認証ユーザーは本操作を行うことができます
- 権限を付与したとしても匿名ユーザがこの操作を行うことはできません
- デフォルトではバケットの所有者だけがこの操作を行うことができます
- バケットポリシーについての詳細は バケットポリシー をご覧ください
![]() |
本項で説明する「PUT Bucket policy」APIは、このAPIの操作権限自体を他者に委譲する設定も行う事が可能です。本APIの操作を別ユーザに対してバケットポリシーで許可する場合、ワイルドカードの指定には特に注意してください。
以下のサンプルでは、バケットポリシーの操作を
自契約以外も含む全ユーザに許可
してしまっています。
このような状態では、ポリシーの書換えが可能であるためアクセス権を意図せず変更されるなど深刻な事態に至る可能性があります。
Conditionを設定する、Principalにワイルドカードを使わないなど、アクセス範囲を制限するよう検討ください。
ポリシーの設定は十分に理解、検証を行ったうえで適用をお願いします。
なお、ここでのサンプルは誤用防止の為に意図的にJSONとして不正な構造にしています。
|
リクエスト情報
シンタックス
PUT /{bucket name}?policy HTTP/1.1 |
Host: s3api.iot.iij.jp |
Date: {date} |
Authorization: {authorization string} |
{Policy written in JSON} |
リクエストパラメータ
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー
この操作では基本リクエストヘッダーのみ使用します。
リクエストエレメント
バケットポリシー設定内容をJSON形式で返します。
レスポンス情報
レスポンスヘッダー
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント
この操作はレスポンスエレメントを返しません。エラー情報
この操作では以下のエラーを返します。
表. PUT Bucket policyエラーコード一覧
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
AccessDenied | 403 Forbidden | ユーザがPutBucketPolicyの権限がありません。 |
AccessDenied | 403 Forbidden | アクセス権限がありません。 |
MethodNotAllowd | 405 Method Not Allowed | 指定のメソッドは、このリソース下では許可されていません。 |
サンプル
バケットポリシーを設定するサンプル
リクエスト
PUT /bucket?policy HTTP/1.1 |
Host: s3api.iot.iij.jp |
Date: Tue, 04 Apr 2010 20:34:56 GMT |
Authorization: IIJGIO VGhpcyBtdlISAMPLEBlbHZpbmc= |
{ |
"Version":"2008-10-17", |
"Id":"aaaa-bbbb-cccc-dddd", |
"Statement" : [{ |
"Effect":"Allow", |
"Sid":"1", |
"Principal" : { |
"IIJGIO":["1-22-333-4444","3-55-678-9100"] |
}, |
"Action":["dag:*"], |
"Resource":"grn:iijgio:dag:::bucket/*" |
}] |
} |
レスポンス
HTTP/1.1 204 No Content |
x-iijgio-id-2: Uuag1LuByR5Onimru9SAMPLEAtRPfTaOFg== |
x-iijgio-request-id: 656c76696e6727732SAMPLE7374 |
Date: Tue, 04 Apr 2010 20:34:56 GMT |
Server: s3api.iot.iij.jp |