Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

バケットポリシーを変更する

共同作成者

デフォルトのバケットポリシーにアクセスルールを追加できます。アクセス制御の範囲はコンテナバケットなので、バケットが 1 つしかない場合は最も適しています。

作業を開始する前に

S3サーバとバケットを含むS3対応Storage VMがすでに存在している必要があります。

権限を付与するには、事前にユーザまたはグループを作成しておく必要があります。

このタスクについて

新しいユーザとグループに新しいステートメントを追加したり、既存のステートメントの属性を変更したりできます。その他のオプションについては、を参照してください vserver object-store-server bucket policy マニュアルページ

ユーザとグループの権限は、バケットの作成時または必要に応じてあとから付与できます。バケットの容量と QoS ポリシーグループの割り当てを変更することもできます。

ONTAP 9.9.1以降では、ONTAP S3サーバでAWSクライアントオブジェクトのタグ付け機能をサポートする場合の処理 GetObjectTaggingPutObjectTagging`および `DeleteObjectTagging バケットまたはグループポリシーを使用して許可されている必要があります。

実行する手順 は、System ManagerまたはCLIを使用するインターフェイスによって異なります。

System Manager の略
手順
  1. バケットを編集します。 * Storage > Bucket* をクリックし、目的のバケットをクリックして * Edit * をクリックします。 権限を追加または変更するときに、次のパラメータを指定できます。

    • * Principal *:アクセス権を付与するユーザまたはグループ。

    • 影響:ユーザまたはグループへのアクセスを許可または拒否します。

    • * Actions *:特定のユーザまたはグループに対してバケットで許可されているアクション。

    • * Resources *:アクセスが許可または拒否されているバケット内のオブジェクトのパスと名前。

      デフォルトの * bucketname* および * bketname / * _ * は、バケット内のすべてのオブジェクトへのアクセスを許可します。また、単一のオブジェクトへのアクセスを許可することもできます。たとえば、 *_bketname/*_readme.txt * と指定します。

    • * Conditions *(オプション):アクセス試行時に評価される式。たとえば、アクセスを許可または拒否する IP アドレスを指定できます。

メモ ONTAP 9.14.1以降では、* Resources *フィールドでバケットポリシーの変数を指定できます。これらの変数はプレースホルダであり、ポリシーの評価時にコンテキスト値に置き換えられます。例えば、 ${aws:username} がポリシーの変数として指定されている場合、この変数は要求コンテキストのユーザ名に置き換えられ、そのユーザに対して設定されたとおりにポリシーアクションを実行できます。
CLI の使用
手順
  1. バケットポリシーにステートメントを追加します。

    vserver object-store-server bucket policy add-statement -vserver svm_name -bucket bucket_name -effect {allow|deny} -action object_store_actions -principal user_and_group_names -resource object_store_resources [-sid text] [-index integer]

    次のパラメータでアクセス権限を定義します。

    -effect

    この文では ' アクセスを許可または拒否できます

    -action

    を指定できます * すべてのアクション、または次の1つ以上のリストを意味します。 GetObject, PutObject, DeleteObject, ListBucket, GetBucketAcl,GetObjectAcl, ListBucketMultipartUploads, および ListMultipartUploadParts

    -principal

    1 つ以上の S3 ユーザまたはグループのリスト。

    • 最大 10 のユーザまたはグループを指定できます。

    • S3グループを指定する場合は、の形式で指定する必要があります group/group_name.

    • * には、パブリックアクセス(アクセスキーとシークレットキーを使用しないアクセス)を指定できます。

    • プリンシパルを指定しない場合、Storage VM内のすべてのS3ユーザにアクセスが許可されます。

    -resource

    バケットとバケットに含まれるすべてのオブジェクト。ワイルドカード文字 * および ? リソースを指定するための正規表現を作成するために使用できます。リソースについては、ポリシーで変数を指定できます。これらのポリシー変数は、ポリシーが評価されるときにコンテキスト値に置き換えられるプレースホルダです。

    オプションで、テキスト文字列をコメントとして指定できます -sid オプション

次の例では、Storage VM svm1.example.comとbucket1に対するオブジェクトストアサーババケットポリシーのステートメントを作成し、オブジェクトストアサーバユーザuser1にreadmeフォルダへのアクセスを許可するように指定しています。

cluster1::> vserver object-store-server bucket policy statement create -vserver svm1.example.com -bucket bucket1 -effect allow -action GetObject,PutObject,DeleteObject,ListBucket -principal user1 -resource bucket1/readme/* -sid "fullAccessToReadmeForUser1"

次の例では、Storage VM svm1.example.comとbucket1に対するオブジェクトストアサーババケットポリシーのステートメントを作成し、オブジェクトストアサーバグループgroup1にすべてのオブジェクトへのアクセスを許可するように指定しています。

cluster1::> vserver object-store-server bucket policy statement create -vserver svm1.example.com -bucket bucket1 -effect allow -action GetObject,PutObject,DeleteObject,ListBucket -principal group/group1 -resource bucket1/* -sid "fullAccessForGroup1"

ONTAP 9.14.1以降では、バケットポリシーの変数を指定できます。次の例は、Storage VM用のサーババケットポリシーステートメントを作成します。 svm1 および bucket1、およびを指定します。 ${aws:username} ポリシーリソースの変数として指定します。ポリシーが評価されると、ポリシー変数は要求コンテキストのユーザ名に置き換えられ、そのユーザに対して設定されたとおりにポリシーアクションを実行できます。たとえば、次のポリシーステートメントが評価されると、 ${aws:username} は、S3処理を実行するユーザに置き換えられます。ユーザーが user1 操作を実行し、そのユーザーにアクセスを許可します。 bucket1 として bucket1/user1/*

cluster1::> object-store-server bucket policy statement create -vserver svm1 -bucket bucket1 -effect allow -action * -principal - -resource bucket1,bucket1/${aws:username}/*##