qcs:ip
を使用してユーザーアクセスIPを制限します。すべてのリクエストに適用可能です。192.168.1.0/24
ネットワークセグメントにある場合およびIPが101.226.100.185
または101.226.100.186
である場合に、オブジェクトのアップロードおよびオブジェクトのダウンロード権限を許可するものです。{"version": "2.0","principal":{"qcs": ["qcs::cam::uin/100000000001:uin/100000000002"]},"statement":[{"effect": "allow","action":["name/cos:PutObject","name/cos:GetObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-gz-1250000000/exampleobject"],"condition":{"ip_equal":{"qcs:ip":["192.168.1.0/24","101.226.100.185","101.226.100.186"]}}}]}
{"statement":[{"action":["name/cos:*"],"condition":{"string_equal":{"vpc:requester_vpc": ["vpc-aqp5jrc1"]}},"effect": "allow","principal":{"qcs": ["qcs::cam::uin/100000000001:uin/100000000002"]},"resource":["qcs::cos:ap-beijing:uid/1250000000:examplebucket-1250000000/*"]}],"version": "2.0"}
versionid
はオブジェクトのバージョン番号を表します。バージョン管理に関する内容は、バージョン管理の概要をご参照ください。オブジェクトのダウンロード(GetObject)、オブジェクトの削除(DeleteObject)の際に、リクエストパラメータversionid
を使用して、アクションを行いたいオブジェクトのバージョンを指定することができます。versionid
が含まれないリクエストパラメータの場合、リクエストはデフォルトでオブジェクトの最新バージョンに作用します。versionid
リクエストパラメータを空の文字列にすると、versionid
が含まれないリクエストパラメータの場合と同じになります。versionid
リクエストパラメータが文字列"null"
の場合、あるバケットにバージョン管理を有効にする前にオブジェクトをアップロードし、その後バージョン管理を有効にすると、それらのオブジェクトのバージョン番号はすべて文字列"null"
となります。cos:versionid
はリクエストパラメータversionid
の制限に用いられます。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:GetObject"],"condition":{"string_equal":{"cos:versionid":"MTg0NDUxNTc1NjIzMTQ1MDAwODg"}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}]}
{"statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:GetObject"],"condition":{"string_equal":{"cos:versionid":"MTg0NDUxNTc1NjIzMTQ1MDAwODg"}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:GetObject"],"condition":{"string_not_equal_if_exist":{"cos:versionid":"MTg0NDUxNTc1NjIzMTQ1MDAwODg"}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}],"version":"2.0"}
versionid
が含まれない場合、またはversionid
が空の文字列の場合、GetObjectはデフォルトで最新バージョンのオブジェクトを取得します。このため、条件の中でstring_equal_if_exsitを使用することができます。“”
の場合も同様にallowポリシーにヒットし、最新バージョンのオブジェクト取得に対するリクエストのみ権限が承認されます。"condition":{"string_equal_if_exist":{"cos:versionid": ""}}
{"statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:GetObject"],"condition":{"string_equal_if_exist":{"cos:versionid":""}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:GetObject"],"condition":{"string_not_equal":{"cos:versionid":""}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}],"version":"2.0"}
{"statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:DeleteObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:DeleteObject"],"condition":{"string_equal":{"cos:versionid":"null"}},"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}],"version":"2.0"}
cos:content-length
によってリクエストヘッダーContent-Length
を制限することができます。それによりアップロードするオブジェクトのファイルサイズを制限することで、ストレージスペースをより柔軟に管理し、大きすぎるファイルや小さすぎるファイルのアップロードによる、ストレージスペースやネットワーク帯域幅の浪費防止に役立ちます。cos:content-length
条件キーによってサブユーザー(uin:100000000002)のアップロードリクエストのContent-Lengthヘッダーのサイズを制限することができます。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:PutObject","name/cos:PostObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"numeric_less_than_equal":{"cos:content-length":10}}},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:PutObject","name/cos:PostObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"numeric_greater_than_if_exist":{"cos:content-length":10}}}]}
{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:PutObject","name/cos:PostObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"numeric_greater_than_equal":{"cos:content-length":2}}},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:PutObject","name/cos:PostObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"numeric_less_than_if_exist":{"cos:content-length":2}}}]}
application/xml
やimage/jpeg
などです。詳細については、リクエストヘッダーリストをご参照ください。cos:content-type
を使用すると、リクエストのContent-Type
ヘッダーを制限することができます。cos:content-type
条件キーによってサブユーザー(uin:100000000002)のアップロードリクエストのContent-Typeヘッダーの具体的な内容を制限することができます。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal":{"cos:content-type":"image/jpeg"}}},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_not_equal_if_exist":{"cos:content-type":"image/jpeg"}}}]}
response-content-type
を追加し、レスポンスのContent-Typeヘッダーの値を設定するために用いることができます。cos:response-content-type
を使用すると、リクエストにリクエストパラメータresponse-content-type
のパラメータ値を必ず含めるかどうかを制限することができます。response-content-type
はリクエストパラメータであるため、リクエストの送信時にurlencodeを経る必要があり、response-content-type=image%2Fjpeg
となります。そのため、Policyを設定する際は、「image/jpeg」にもurlencodeを行って「image%2Fjpeg」と入力する必要があります。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"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/100000000001:uin/100000000002"]},"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"}}}]}
cos:secure-transport
を使用して、リクエストが必ずHTTPSプロトコルを使用するよう制限することができます。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:GetObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"bool_equal":{"cos:secure-transport":"true"}}}]}
{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"bool_equal":{"cos:secure-transport":"false"}}}]}
x-cos-storage-class
によって、オブジェクトをアップロードする際にストレージタイプを指定したり、オブジェクトのストレージタイプを変更したりすることができます。cos:x-cos-storage-class
によって、リクエストヘッダーx-cos-storage-class
を制限し、それによりストレージタイプを変更する可能性のあるリクエストを制限することができます。STANDARD
、MAZ_STANDARD
, STANDARD_IA
、MAZ_STANDARD_IA
、INTELLIGENT_TIERING
、MAZ_INTELLIGENT_TIERING
、ARCHIVE
、DEEP_ARCHIVE
があります。STANDARD
とするよう制限します。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal":{"cos:x-cos-storage-class":"STANDARD"}}},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_not_equal_if_exist":{"cos:x-cos-storage-class":"STANDARD"}}}]}
x-cos-acl
を使用すると、オブジェクトのアップロード、バケットの作成時にアクセス制御リスト(ACL)を指定するか、またはオブジェクト、バケットACLを変更することができます。ACLに関する説明については、ACLの概要をご参照ください。private
、public-read
、public-read-write
、authenticated-read
。default
、private
、public-read
、authenticated-read
、bucket-owner-read
、bucket-owner-full-control
。cos:x-cos-acl
によって、リクエストヘッダーx-cos-acl
を制限し、それによりオブジェクトまたはバケットACLを変更する可能性のあるリクエストを制限することができます。private
とするよう要求します。{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal":{"cos:x-cos-acl":"private"}}},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:PutObject"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_not_equal_if_exist":{"cos:x-cos-acl":"private"}}}]}
cos:prefix
によってリクエストパラメータprefixを制限することができます。/
など)の場合は、バケットポリシーに書き込む前にurlencodeを経る必要があります。{"statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["name/cos:GetBucket"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal":{"cos:prefix":"folder1"}}},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["name/cos:GetBucket"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"string_equal_if_exist":{"cos:prefix":"folder1"}}}],"version":"2.0"}
cos:tls-version
によってHTTPSリクエストのTLSバージョンを制限することができます。この条件キーはNumricタイプであり、1.0、1.1、1.2などの浮動小数点数の入力が可能です。リクエストのシナリオ | 予測 |
HTTPSリクエスト、TLSバージョンは1.0 | 403、失敗 |
HTTPSリクエスト、TLSバージョンは1.2 | 200、成功 |
{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"numeric_equal":{"cos:tls-version":1.2}}}]}
リクエストのシナリオ | 予測 |
HTTPSリクエスト、TLSバージョンは1.0 | 403、失敗 |
HTTPSリクエスト、TLSバージョンは1.2 | 200、成功 |
{"version":"2.0","statement":[{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"allow","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"numeric_greater_than_equal":{"cos:tls-version":1.2}}},{"principal":{"qcs":["qcs::cam::uin/100000000001:uin/100000000002"]},"effect":"deny","action":["*"],"resource":["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"],"condition":{"numeric_less_than_if_exist":{"cos:tls-version":1.2}}}]}
qcs:request_tag
によって、ユーザーがPutBucket、PutBucketTaggingリクエストを送信する際に、必ず指定したバケットタグを含めるよう制限することができます。<a,b>
および<c,d>
を設定した場合にのみ権限を取得できるよう制限するものです。for_any_value:string_equal
はAとBに共通部分が存在する場合に発効することを表します。for_any_value:string_equal
はAがBのサブセットである場合に発効することを表します。for_any_value:string_equal
を使用する場合、対応するポリシーとリクエストは次のように表されます。リクエストのシナリオ | 予測 |
PutBucket、リクエストヘッダー x-cos-tagging: a=b&c=d | 200、成功 |
PutBucket、リクエストヘッダー x-cos-tagging: a=b | 200、成功 |
PutBucket、リクエストヘッダー x-cos-tagging: a=b&c=d&e=f | 200、成功 |
{"version": "2.0","statement":[{"principal":{"qcs": ["qcs::cam::uin/100000000001:uin/100000000002"]},"effect": "allow","action":["name/cos:PutBucket"],"resource": "*","condition":{"for_any_value:string_equal":{"qcs:request_tag": ["a&b","c&d"]}}}]}
for_all_value:string_equal
を使用する場合、対応するポリシーとリクエストは次のように表されます。リクエストのシナリオ | 予測 |
PutBucket、リクエストヘッダー x-cos-tagging: a=b&c=d | 200、成功 |
PutBucket、リクエストヘッダー x-cos-tagging: a=b | 200、成功 |
PutBucket、リクエストヘッダー x-cos-tagging: a=b&c=d&e=f | 403、失敗 |
{"version": "2.0","statement":[{"principal":{"qcs": ["qcs::cam::uin/100000000001:uin/100000000002"]},"effect": "allow","action":["name/cos:PutBucket"],"resource": "*","condition":{"for_all_value:string_equal": {"qcs:request_tag": ["a&b","c&d"]}}}]}
この記事はお役に立ちましたか?