アクセス ポリシーの概要

StorageGRID Webscaleでは2種類のアクセス ポリシーがサポートされています。

StorageGRID Webscaleのバケットとグループのポリシーは、Amazonが定義している特定の文法に従って記述されます。各ポリシーは一連のステートメントからなり、それぞれのステートメントは次の要素で構成されます。
  • Sid(ステートメントID)(オプション)
  • Effect
  • Principal / NotPrincipal
  • Resource / NotResource
  • Action / NotAction
  • Condition(オプション)

これらの要素を使用して、次の構文に従って権限を指定するポリシー ステートメントが構築されます。<Effect>を付与して、<Condition>に該当する場合に<Principal>に<Resource>に対する<Action>の実行を許可または拒否します。

ポリシーの各要素の説明を次に示します。

要素 説明
Sid Sid要素はオプションです。Sidはユーザに対する説明としてのみ使用されます。StorageGRID Webscaleシステムに格納はされますが、システムで解釈されません。
Effect Effect要素では、指定した処理を許可するか拒否するかを指定します。Action要素でサポートされるキーワードを使用して、バケットまたはオブジェクトで許可(または拒否)する処理を指定する必要があります。
Principal / NotPrincipal

ユーザ、グループ、またはアカウントを指定して、特定のリソースへのアクセスや特定の処理の実行を許可できます。要求にS3の署名が含まれていない場合は、ワイルドカード文字(*)をプリンシパルとして指定することで匿名アクセスが許可されます。デフォルトでは、アカウントが所有するリソースへのアクセスはrootアカウントにのみ許可されます。

Principal要素を指定する必要があるのはバケット ポリシーだけです。グループ ポリシーの場合は、ポリシーが関連付けられたグループが暗黙的にプリンシパルになります。

Resource / NotResource Resource要素では、バケットおよびオブジェクトを指定します。Uniform Resource Name(URN)を使用してリソースを指定して、バケットやオブジェクトに対する権限を許可または拒否することができます。
Action / NotAction 権限はAction要素とEffect要素の2つで構成されます。グループがリソースを要求すると、権限に基づいてリソースへのアクセスが許可または拒否されます。権限を明示的に割り当てていなければアクセスは拒否されますが、明示的な拒否を使用して別のポリシーで付与された権限を拒否することもできます。
Condition Condition要素はオプションです。ポリシーを適用する条件を示す式を作成できます。
Action要素では、ワイルドカード文字(*)を使用してすべての処理や処理のサブセットを指定できます。たとえば、次のActionの値は、s3:GetObject、s3:PutObject、s3:DeleteObjectなどの権限に一致します。
s3:*Object

Resource要素では、ワイルドカード文字の「*」と「?」を使用できます。アスタリスク(*)は0文字以上の文字に一致し、疑問符(?)は任意の1文字に一致します。

Principal要素では、匿名アクセスを設定してすべてのユーザに権限を付与する場合を除き、ワイルドカード文字はサポートされません。Principalの値としてワイルドカード(*)を設定する例を次に示します。

"Principal":"*"

次に、Effect、Principal、Action、およびResourceの各要素を使用して記述したステートメントの例を示します。このバケット ポリシーのステートメントでは、Effectで「Allow」を指定して、Principalで指定したadminグループ(federated-group/admin)とfinanceグループ(federated-group/finance)に、mybucketという名前のバケットに対するs3:ListBucket処理とそのバケット内のすべてのオブジェクトに対するs3:GetObject処理を実行する権限を付与しています。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "SGWS": [
          "urn:sgws:identity::27233906934684427525:federated-group/admin",
          "urn:sgws:identity::27233906934684427525:federated-group/finance"
        ]
      },
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "urn:sgws:s3:::mybucket",
        "urn:sgws:s3:::mybucket/*"
      ]
    }
  ]
}

バケット ポリシーのサイズの上限は20,480バイトで、グループ ポリシーのサイズの上限は5,120バイトです。