エフサステクノロジーズ株式会社

本ページの製品は2024年4月1日より、エフサステクノロジーズ株式会社に統合となり、順次、切り替えを実施してまいります。一部、富士通表記が混在することがありますので、ご了承ください。

ONTAP 9 マニュアル ( CA08871-402 )

バケット ポリシーの変更

デフォルトのバケット ポリシーにアクセス ルールを追加できます。デフォルト ポリシーのアクセス制御対象は対応するバケットであるため、バケットが1つだけの場合はデフォルト ポリシーが最も適しています。

開始する前に

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

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

タスク概要

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

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

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

実行する手順は、ONTAP System ManagerとCLIのどちらのインターフェイスを使用するかによって異なります。

ONTAP System Manager
手順
  1. バケットを編集します。[ストレージ] > [バケット]をクリックし、目的のバケットをクリックして[編集]をクリックします。 権限を追加または変更する際には次のパラメーターを指定できます。

    • プリンシパル:アクセスを付与するユーザーまたはグループ。

    • Effect:ユーザーまたはグループにアクセスを許可するか拒否するか。

    • アクション:特定のユーザーまたはグループに許可するバケット内での処理。

    • リソーズ:アクセスを許可または拒否するバケット内のオブジェクトのパスと名前。

      デフォルトのbucketnameおよびbucketname/*を指定すると、バケット内のすべてのオブジェクトへのアクセスが許可されます。単一のオブジェクトへのアクセスを許可するには、bucketname/*_readme.txtのように指定します。

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

ONTAP 9.14.1以降では、[リソース]フィールドでバケット ポリシーの変数を指定できます。これらの変数はプレースホルダであり、ポリシーの評価時にコンテキストに応じた値に置き換えられます。たとえば、あるポリシーで変数として${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

    次の操作の中から指定します(複数可)。 *ですべての操作を指定できます。GetObject, PutObject, DeleteObject, ListBucket, GetBucketAcl,GetObjectAcl, ListBucketMultipartUploads,, ListMultipartUploadParts

    -principal

    S3ユーザーまたはグループのリストを指定します。

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

    • S3グループを指定する場合はgroup/group_nameの形式で指定する必要があります。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 svm1bucket1に対するサーバー バケットポリシーのステートメントを作成し、ポリシー リソースの変数として${aws:username}を指定しています。ポリシーの評価時に、ポリシー変数が要求コンテキストのユーザー名に置き換えられ、そのユーザーに対して設定されたポリシー処理を実行できます。たとえば、次のポリシー ステートメントは、評価時に${aws:username}がS3処理を実行するユーザーに置き換えられます。ユーザーuser1が処理を実行すると、そのユーザーはbucket1/user1/*としてbucket1へのアクセスが許可されます。

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

本トピックの構成


バケット ポリシーの変更

Top of Page