アクセス制御リスト (ACL) は、バケットおよびオブジェクトへのアクセス権限を付与するポリシーです。ACL は、バケットの作成時またはオブジェクトのアップロード時に設定できます。また、ACL はいつでも変更できます。バケットまたはオブジェクトの ACL を設定または変更するには、set-acl コマンドを使用します。
注意事項
-
バケット ACL を設定または変更するには、
oss:PutBucketAcl権限が必要です。 オブジェクト ACL を設定または変更するには、oss:PutObjectAcl権限が必要です。 複数のオブジェクトの ACL を一括で変更するには、oss:PutObjectAclおよびoss:ListObjects権限が必要です。 詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。 -
ossutil v1.6.16 以降では、コマンドラインで ossutil をバイナリ名として直接使用できます。お使いのオペレーティングシステムに応じてバイナリの名前を変更する必要はありません。ossutil の 1.6.16 より前のバージョンを使用する場合は、お使いのオペレーティングシステムに応じてバイナリの名前を変更する必要があります。詳細については、「ossutil コマンドリファレンス」をご参照ください。
バケット ACL の設定または変更
-
コマンド構文
ossutil set-acl oss://bucketname acl -b [--retry-times <value>]パラメーターとオプションは次の表のとおりです。
設定項目
説明
バケット名
ACL を設定または変更するバケットの名前。
acl
バケットの ACL。 有効値:
-
プライベート (デフォルト): バケットの所有者のみがバケット内のオブジェクトの読み取りと書き込みができます。他のユーザーはバケット内のオブジェクトにアクセスできません。
-
public-read:バケットの所有者のみがバケット内のオブジェクトに書き込むことができます。 匿名ユーザーを含む他のユーザーは、オブジェクトの読み取りのみ可能です。 これにより、データ漏洩や予期せぬ高額な料金が発生する可能性があります。 ユーザーが禁止されているデータや情報をアップロードすると、お客様の法的権利が侵害されるおそれがあります。 必要でない限り、ACL を public-read に設定しないでください。
-
public-read-write: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトの読み取りと書き込みができます。この設定は、データ漏洩や予期しない高額な料金につながる可能性があります。ACL を public-read-write に設定する際は、十分にご注意ください。
-b
デフォルトでは、このコマンドはオブジェクトの 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>]パラメーターとオプションは次の表のとおりです。
設定項目
説明
バケット名
バケットの名前。
プレフィックス
バケット内のリソース (フォルダーやファイルなど)。
acl
オブジェクトの ACL。 有効値:
-
デフォルト:オブジェクトはバケットの ACL を継承します。
-
プライベート (デフォルト): バケットの所有者のみがオブジェクトの読み取りと書き込みができます。他のユーザーはオブジェクトにアクセスできません。
-
public-read: バケットの所有者のみがオブジェクトに書き込め、匿名ユーザーを含む他のユーザーはオブジェクトの読み取りのみ可能です。これにより、データ漏洩や予期しない高額な料金が発生する可能性があります。ユーザーが禁止されているデータや情報をアップロードした場合、お客様の法的権利が侵害される可能性があります。必要でない限り、ACL をpublic-readに設定しないでください。 -
public-read-write: 匿名ユーザーを含むすべてのユーザーが、オブジェクトの読み取りおよび書き込みができます。これにより、データ漏洩や想定外の高額料金が発生するおそれがあります。ACL を
public-read-writeに設定する際は、十分にご注意ください。
-r
指定されたプレフィックスに一致するすべてのオブジェクトの ACL を再帰的に設定します。 このオプションを指定しない場合、
ossutilはクラウド URL で指定された単一のオブジェクトの ACL のみを設定します。--include
指定された条件に一致するオブジェクトのみを含めます。
詳細については、「--include および --exclude オプション」をご参照ください。
--exclude
指定された条件に一致するオブジェクトを除外します。
詳細については、「--include および --exclude オプション」をご参照ください。
--version-id
オブジェクトバージョンの ID。 このオプションは、バージョニングが有効または一時停止されているバケット内のオブジェクトにのみ適用されます。
--job
バッチ操作の同時タスク数。 デフォルト値:3。 値の範囲:1~10000。
--retry-times
エラーが発生した場合のリトライ回数。 デフォルト値:10。 値の範囲:1~500。
--encoding-type
oss://bucket_nameに続くプレフィックスのエンコーディングタイプです。値を url に設定します。このオプションを指定しない場合、プレフィックスはエンコードされません。 -
-
例
-
examplebucket バケット内の exampleobject.txt オブジェクトの ACL を
privateに設定します。ossutil set-acl oss://examplebucket/exampleobject.txt private -
examplebucketバケット内のexampleobject.txtオブジェクトの特定のバージョン (CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****) の ACL をプライベートに設定します。ossutil set-acl oss://examplebucket/exampleobject.txt private --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** -
examplebucket バケット内のプレフィックスが test のすべてのオブジェクトの ACL を
defaultに設定します。ossutil set-acl oss://examplebucket/test default -r -
examplebucket バケット内の拡張子が .jpg のすべてのオブジェクトの ACL を
privateに設定します。ossutil set-acl oss://examplebucket private --include "*.jpg" -r -
examplebucket バケット内の名前に abc を含むが拡張子が .png または .txt ではないすべてのオブジェクトの ACL を
defaultに設定します。ossutil set-acl oss://examplebucket default --include "*abc*" --exclude "*.png" --exclude "*.txt" -r
-
共通オプション
別のリージョンのバケットにアクセスするには、 -e を使用してエンドポイントを指定します。 別の Alibaba Cloud アカウントが所有するバケットにアクセスするには、AccessKey ID には -i を、AccessKey secret には -k を使用します。
たとえば、testbucket という名前のバケットの ACL を private に設定するには、次のコマンドを実行します。 バケットは中国 (上海) リージョンにあり、別の Alibaba Cloud アカウントに属しています。
ossutil set-acl oss://testbucket private -b -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret
詳細については、「共通オプション」をご参照ください。