cos:PutObject
アクションの権限付与が完了することを表します。このうち、qcs:ip
であり、発効条件の種類がIPであることを表します。ip_equal
であり、発効条件の判断方法がIPアドレスの同一性であることを表します。["10.217.182.3/24","111.21.33.72/24"]
であり、発効条件判断の規定値を表します。ユーザーが配列の中の任意のIPがあるネットワークセグメントに属している場合、条件判断はすべてtrueとなります。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"allow","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"ip_equal":{"qcs:ip":["10.217.182.3/24","111.21.33.72/24"]}}}]}
tls-version
は現在北京リージョンでのみサポートしています。その他のリージョンでも順次サポート予定です。qcs:ip
、qcs:vpc
およびcos:secure-transport
が含まれ、それぞれ、リクエスト元のIPネットワークセグメント、VPC ID、HTTPSプロトコルを使用しているかどうかを表します。すべてのリクエストが使用できます。条件キー | 適用リクエスト | 意味 | タイプ |
すべてのリクエスト | リクエストにHTTPSプロトコルが適用されているかどうか確認 | Boolean | |
すべてのリクエスト | リクエスト元のIPネットワークセグメント | IP | |
すべてのリクエスト | リクエスト元のVPC ID | String | |
すべてのhttpsリクエスト | httpsリクエストに使用しているTLSバージョン | Numeric |
cos:content-type
は、リクエストヘッダーContent-Type
を使用する必要があるアップロードクラスのリクエスト(PutObjectなど)に適用できます。条件キーcos:response-content-type
はGetObjectオブジェクトにのみ適用できます。このリクエストのみがリクエストパラメータresponse-content-type
をサポートしているためです。条件キー | 適用リクエスト | リクエストヘッダー/リクエストパラメータの確認 | タイプ |
PutObject PostObject InitiateMultipartUpload AppendObject | リクエストヘッダー:x-cos-storage-class | String | |
GetObject DeleteObject PostObjectRestore PutObjectTagging GetObjectTagging DeleteObjectTagging HeadObject | リクエストパラメータ:versionid | String | |
GetBucket(List Objects) GET Bucket Object versions List Multipart Uploads ListLiveChannels | リクエストパラメータ:prefix | String | |
PutObject PostObject PutObjectACL PutBucket PutBucketACL AppendObject Initiate Multipart Upload | リクエストヘッダー:x-cos-acl | String | |
このリクエストは適用範囲が広いため、リクエストボディ付きのリクエストなどの代表的なリクエストに注目 | リクエストヘッダー:Content-Length | Numeric | |
このリクエストは適用範囲が広いため、リクエストボディ付きのリクエストなどの代表的なリクエストに注目 | リクエストヘッダー:Content-Type | String | |
GetObject | リクエストパラメータ:response-content-type | String | |
PutBucket PutBucketTagging | リクエストヘッダー:x-cos-tagging リクエストパラメータ:tagging | String |
条件オペレーター | 意味 | タイプ |
string_equal | 文字列一致(大文字と小文字を区別) | String |
string_not_equal | 文字列不一致(大文字と小文字を区別) | String |
string_like | 文字列が類似(大文字と小文字を区別)。現在は文字列の前後へのワイルドカード * の追加をサポートしています(例:image/* ) | String |
ip_equal | IP一致 | IP |
ip_not_equal | IP不一致 | IP |
numeric_equal | 数値一致 | Numeric |
numeric_not_equal | 数値不一致 | Numeric |
numeric_greater_than | 数値が大きい | Numeric |
numeric_greater_than_equal | 数値が同じか大きい | Numeric |
numeric_less_than | 数値が小さい | Numeric |
numeric_less_than_equal | 数値が同じか小さい | Numeric |
_if_exist
を追加することで単一条件オペレーターとすることができます。例えば、string_equal_if_exist
などです。条件オペレーターに_if_exist
が含まれるかどうかで異なる点は、リクエストに、条件キーに対応するリクエストヘッダーまたはリクエストパラメータが含まれない場合にどのように処理されるかの違いです。_if_exist
が含まれない場合、例えばstring_equal
の場合は、リクエストに対応するリクエストヘッダー/リクエストパラメータが含まれないとき、デフォルトで条件にヒットし、False
となります。_if_exist
が含まれる場合、例えばstring_equal_if_exist
の場合は、リクエストに対応するリクエストヘッダー/リクエストパラメータが含まれないとき、デフォルトで条件にヒットし、True
となります。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"allow","action":["name/cos:GetObject"],"condition":{"string_equal":{"cos:versionid":"MTg0NDUxNTc1NjIzMTQ1MDAwODg"}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}]}
string_equal
またはstring_equal_if_exist
の場合、conditionのヒット状況およびリクエストが承認されるかどうかは下表のとおりとなります。条件オペレーター | リクエスト | conditionにヒットするか | リクエストが承認されるか |
string_equal | versionidなし | FALSE | 不承認 |
string_equal_if_exist | versionidなし | TRUE | 承認 |
string_equal | versionid付き、指定のもの | TRUE | 承認 |
string_equal_if_exist | versionid付き、指定のもの | TRUE | 承認 |
string_equal | versionid付き、指定のもの以外 | FALSE | 不承認 |
string_equal_if_exist | versionid付き、指定のもの以外 | FALSE | 不承認 |
{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"deny","action":["name/cos:GetObject"],"condition":{"string_equal":{"cos:versionid":"MTg0NDUxNTc1NjIzMTQ1MDAwODg"}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}]}
string_equal
またはstring_equal_if_exist
の場合、conditionのヒット状況およびリクエストが拒否されるかどうかは下表のとおりとなります。条件オペレーター | リクエスト | conditionにヒットするか | リクエストが拒否される/拒否されない |
string_equal | versionidなし | FALSE | 拒否されない |
string_equal_if_exist | versionidなし | TRUE | 拒否される |
string_equal | versionid付き、指定のもの | TRUE | 拒否される |
string_equal_if_exist | versionid付き、指定のもの | TRUE | 拒否される |
string_equal | versionid付き、指定のもの以外 | FALSE | 拒否されない |
string_equal_if_exist | versionid付き、指定のもの以外 | FALSE | 拒否されない |
cos:response-content-type
条件キーを使用する際、条件値が"image/jpeg"であれば、必ずurlencodeで"image%2Fjpeg"に変換してからバケットポリシーに入力する必要があります。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"allow","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal":{"cos:response-content-type":"image%2Fjpeg"}}},{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"deny","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_not_equal_if_exist":{"cos:response-content-type":"image%2Fjpeg"}}}]}
{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"allow","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal_if_exist":{"cos:response-content-type":"image%2Fjpeg"}}},{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"deny","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_not_equal":{"cos:response-content-type":"image%2Fjpeg"}}}]}
{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"allow","action":["name/cos:GetObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal":{"cos:response-content-type":"image%2Fjpeg"}}},{"principal":{"qcs":["qcs::cam::uin/1250000000:uin/1250000001"]},"effect":"deny","action":["name/cos:GetObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_not_equal_if_exist":{"cos:response-content-type":"image%2Fjpeg"}}}]}
この記事はお役に立ちましたか?