アクセス制御リスト (ACL) は、Object Storage Service (OSS) のバケットとオブジェクトに対するアクセス許可を管理するために使用されるポリシーです。 バケットの作成時にバケットのACLを設定し、オブジェクトのアップロード時にオブジェクトのACLを設定できます。 既存のオブジェクトとバケットのACLはいつでも変更できます。 このトピックでは、set-aclコマンドを使用してバケットとオブジェクトのaclを設定または変更する方法について説明します。
使用上の注意
バケットのACLを設定または変更するには、
oss:PutBucketAcl
権限が必要です。 オブジェクトのACLを設定または変更するには、oss:PutObjectAcl
権限が必要です。 複数のオブジェクトのACLを一度に変更するには、oss:PutObjectAcl
およびoss:ListObjects
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。このトピックでは、64ビットLinuxシステムに基づくサンプルコマンドラインを提供します。 他のシステムのために、取り替えて下さい./ossutil64対応するバイナリ名を持つコマンドで 詳細は、「ossutilコマンドリファレンス」をご参照ください。
バケットのACLの設定または変更
コマンド構文
./ossutil64 set-acl oss:// bucketname acl -b [-- retry-times <value>]
次の表に、構文のパラメーターとオプションを示します。
パラメータ /オプション
説明
bucketname
ACLを設定または変更するバケットの名前。
acl
バケットのACL。 有効な値:
private (デフォルト): バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できるのは、バケット所有者のみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。
public-read: バケット内のオブジェクトに対して書き込み操作を実行できるのは、バケット所有者のみです。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトに対してのみ読み取り操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、あなたの法的権利が侵害される可能性があります。 必要な場合を除き、ACLをpublic-readに設定しないことをお勧めします。
public-read-write: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ACLをpublic-read-writeに設定するときは注意してください。
-b
このオプションを指定しない場合、コマンドで指定されたACLはオブジェクトのACLです。 バケットのACLを設定するには、このオプションを指定する必要があります。
-- retry-times
コマンドの実行に失敗した後のリトライ回数。 デフォルト値は 10 です。 有効な値: 1 ~ 500
例:
次のコマンドを実行して、examplebucketという名前のバケットのACLをprivateに設定できます。
./ossutil64 set-acl oss:// examplebucket private -b
オブジェクトのACLの設定または変更
コマンド構文
. /ossutil64 set-acl oss:// bucketname[/prefix] acl [-r] [-- include <value>] [-- exclude <value>] [-- version-id <value>] [-- job <value>] [-- retry-times <value>] [-- encoding-type <value>]
次の表に、構文のパラメーターとオプションを示します。
パラメータ /オプション
説明
bucketname
ACLを設定または変更するオブジェクトを含むバケットの名前。
プレフィックス
ディレクトリやオブジェクトなどのリソース名のプレフィックス。
acl
オブジェクトのACL。 有効な値:
デフォルト: オブジェクトのACLは、オブジェクトが格納されているバケットのACLと同じです。
private (デフォルト): バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できるのは、バケット所有者のみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。
public-read: バケット内のオブジェクトに対して書き込み操作を実行できるのは、バケット所有者のみです。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトに対してのみ読み取り操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、あなたの法的権利が侵害される可能性があります。 必要な場合を除き、ACLをpublic-readに設定しないことをお勧めします。
public-read-write: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ACLをpublic-read-writeに設定するときは注意してください。
-r
このオプションを指定すると、プレフィックスオプションで指定されたプレフィックスを名前に含むすべてのオブジェクトのACLが設定されます。 このオプションを指定しない場合、ossutilはcloud_urlで指定されたオブジェクトのACLのみを構成します。
-含める
指定された条件を満たすすべてのオブジェクトを含みます。
詳細については、「」をご参照ください。オプション -- includeおよび -- exclude.
-除外
指定された条件を満たすすべてのオブジェクトを除外します。
詳細については、「」をご参照ください。オプション -- includeおよび -- exclude.
-- version-id
ACLを構成または変更するオブジェクトのバージョンID。 このパラメーターは、バージョン管理が有効または一時停止されているバケット内のオブジェクトにのみ適用されます。
-仕事
複数のオブジェクトで実行できる同時タスクの数。 有効な値: 1 ~ 10000 デフォルト値: 3。
-- retry-times
コマンドの実行に失敗した後のリトライ回数。 デフォルト値は 10 です。 有効な値: 1 ~ 500
-- encoding-type
oss:// bucket_name
に続くプレフィックスをエンコードするために使用されるメソッド。 有効値: url このオプションを指定しない場合、プレフィックスはエンコードされません。例
次のコマンドを実行して、examplebucketという名前のバケット内のexampleobject.txtという名前のオブジェクトのACLをprivateに設定できます。
./ossutil64 set-acl oss:// examplebucket/exampleobject.txtプライベート
次のコマンドを実行して、examplebucketという名前のバケット内のexampleobject.txtオブジェクトの指定されたバージョン (
CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3 ****
) のACLをprivateに設定できます。./ossutil64 set-acl oss:// examplebucket/exampleobject.txt private -- version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3 ****
次のコマンドを実行して、examplebucketという名前のバケット内のテストプレフィックスを名前に含むオブジェクトのACLをデフォルトに設定できます。
./ossutil64 set-acl oss:// examplebucket/test default -r
次のコマンドを実行して、名前に examplebucketという名前のバケット内のjpg拡張子をprivateにします。
./ossutil64 set-acl oss:// examplebucket private -- include "*.jpg" -r
次のコマンドを実行して、名前に "abc" 文字列が含まれ、pngまたは。デフォルトへのexamplebucketという名前のバケット内のtxt拡張:
./ossutil64 set-acl oss:// examplebucket default-include "* abc *"-exclude "*.png"-exclude "*.txt" -r
一般的なオプション
ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKey secretを指定します。
たとえば、次のコマンドを実行して、testbucketという名前のバケットのACLをprivateに設定できます。 testbucketバケットは中国 (上海) リージョンにあり、別のAlibaba Cloudアカウントが所有しています。
./ossutil64 set-acl oss:// testbucket private -b -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****
共通オプションの詳細については、「共通オプション」をご参照ください。