アクセス制御リスト (ACL) は、Object Storage Service (OSS) のバケットとオブジェクトに対するアクセス許可を管理するために使用されるポリシーです。 バケットの作成時にバケットのACLを設定し、オブジェクトのアップロード時にオブジェクトのACLを設定できます。 既存のオブジェクトとバケットのACLはいつでも変更できます。 このトピックでは、set-aclコマンドを使用してバケットとオブジェクトのaclを設定または変更する方法について説明します。
使用上の注意
バケットのACLを設定または変更するには、
oss:PutBucketAcl
権限が必要です。 オブジェクトのACLを設定または変更するには、oss:PutObjectAcl
権限が必要です。 複数のオブジェクトのACLを一度に変更するには、oss:PutObjectAcl
およびoss:ListObjects
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。ossutil 1.6.16以降の場合、コマンドラインでossutilをバイナリ名として直接使用できます。 オペレーティングシステムに基づいてバイナリ名を更新する必要はありません。 1.6.16より前のossutilの場合、オペレーティングシステムに基づいてバイナリ名を更新する必要があります。 詳細は、「ossutilコマンドリファレンス」をご参照ください。
バケットのACLの設定または変更
コマンド構文
ossutil 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に設定できます。
ossutil set-acl oss:// examplebucket private -b
オブジェクトのACLの設定または変更
コマンド構文
ossutil 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のみを構成します。
-含める
指定された条件を満たすすべてのオブジェクトにコマンドが適用されることを指定します。
詳細については、「-含めると-除外」をご参照ください。
-除外
指定された条件を満たさないすべてのオブジェクトにコマンドが適用されることを指定します。
詳細については、「-含めると-除外」をご参照ください。
-- version-id
ACLを構成または変更するオブジェクトのバージョンID。 このパラメーターは、バージョン管理が有効または一時停止されているバケット内のオブジェクトにのみ適用されます。
-仕事
複数のオブジェクトで実行できる同時タスクの数。 有効な値: 1 ~ 10000 デフォルト値: 3。
-- retry-times
コマンドの実行に失敗した後のリトライ回数。 デフォルト値は 10 です。 有効な値: 1 ~ 500
-- encoding-type
oss:// bucket_name
に続くprefixパラメーターの値をエンコードするために使用されるメソッド。 有効値: url このオプションを指定しない場合、プレフィックスはエンコードされません。例
次のコマンドを実行して、examplebucketという名前のバケット内のexampleobject.txtという名前のオブジェクトのACLをprivateに設定できます。
ossutil set-acl oss:// examplebucket/exampleobject.txtプライベート
次のコマンドを実行して、examplebucketという名前のバケット内のexampleobject.txtオブジェクトの指定されたバージョン (
CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3 ****
) のACLをprivateに設定できます。ossutil set-acl oss:// examplebucket/exampleobject.txt private -- version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3 ****
次のコマンドを実行して、examplebucketという名前のバケット内のテストプレフィックスを名前に含むオブジェクトのACLをデフォルトに設定できます。
ossutil set-acl oss:// examplebucket/test default -r
次のコマンドを実行して、名前に examplebucketという名前のバケット内のjpg拡張子をprivateにします。
ossutil set-acl oss:// examplebucket private -- include "*.jpg" -r
次のコマンドを実行して、名前に "abc" 文字列が含まれ、pngまたは。デフォルトへのexamplebucketという名前のバケット内のtxt拡張:
ossutil 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アカウントが所有しています。
ossutil set-acl oss:// testbucket private -b -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****
共通オプションの詳細については、「共通オプション」をご参照ください。