お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Stratus権限

デフォルト権限テンプレート

2種類のデフォルト権限テンプレートのいずれかを使用してバケットを作成できます。

catalyst_stratus_name_bucket

  • Authenticated権限テンプレート: このデフォルト権限テンプレートを使用して作成されたバケットは、アプリケーションのクライアントポータルで認証されたユーザーのみがバケットのすべてのオブジェクトにアクセスできることを規定します。

  • Public権限テンプレート: このデフォルト権限テンプレートを使用して作成されたバケットは、インターネット上のすべてのエンドユーザーが認証要件なしにバケットのオブジェクトにアクセスできるようにします。

注意:
  • 両方の権限テンプレートは、バケットを作成する際に選択する必要があるデフォルトタイプです。これらのテンプレートは編集可能で、バケットに保存された個々のオブジェクトの権限も編集できます。

  • 設定された権限はプロジェクトユーザーにのみ適用され、コラボレーターには適用されません。

  • これらの権限はエンドユーザーのアクセスレベルを定義するためのものであり、CollaboratorsAdministratorsのためのものではありません。コラボレーターのアクセスレベルはProfiles & Permissionsセクションで定義できます。

  • 選択した権限テンプレートに関係なく、バケット内のuploadアクションは認証されたユーザーのみが実行できます。

カスタム権限

バケットを作成する際に、デフォルトの権限テンプレート(AuthenticatedまたはPublic)を選択する必要があります。選択に基づいてデフォルトの権限テンプレートが読み込まれ、バケットが作成されます。これに加えて、選択した権限テンプレートに関係なく、シンプルなJSONコードを使用して個々のオブジェクトごとの権限を定義したり、サブディレクトリ全体の権限を定義したりできます。

catalyst_stratus_permisions_updating

選択に基づいて読み込まれるデフォルトの権限テンプレートを以下に示します:

デフォルトAuthenticated権限テンプレート

Authenticated Permission Template
copy
{
    "rules": [
        {
            "rule_id": "AuthenticatedBucket_Rule1",
            "condition": {
                "user": {
                    "auth_type": "authenticated",
                    "zuid": "*"
                }
            },
            "allowed_actions": [
                "GetObject"
            ],
            "paths": [
                "vendorstats::/*"
            ],
            "effect": "allow"
        }
    ],
    "version": "v1"
}

デフォルトPublic権限テンプレート

Authenticated Permission Template
copy
{
    "rules": [
        {
            "rule_id": "PublicBucket",
            "condition": {
                "user": {
                    "auth_type": "public"
                }
            },
            "actions": [
                "GetObject"
            ],
            "paths": [
                "zylker-bucket-pubs::/*"
            ],
            "effect": "allow"
        }
    ],
    "version": "v1"
}

両方の権限テンプレートを効果的に編集し、カスタム権限を使用するには、以下のJSONキーとその目的を理解する必要があります:

JSONキー名 目的
rules
  • 権限を設定するJSONキーです
  • このキーには、バケット内のオブジェクトに対して定義するすべてのルールが含まれます
rule_id
  • 定義するルールの名前を含む文字列です。
  • 一意に識別できる方法でルールに名前を付ける必要があります。
effect
  • allowまたはdenyの2つの値のみを入力できるキーです
  • 値に基づいて、特定のユーザーにアクションの実行をallow(許可)するか、特定のユーザーのアクションをdeny(拒否)するルールになります。
  • 複数の設定された権限ステートメントの条件を満たすアクセス要求を受け取った場合、以下の動作が予想されます
    • 一致するステートメントの1つでもeffectがdenyの場合、denyがすべてのallowステートメントを上書きします。
    • allowのeffectを有効にするには、一致する条件を持つステートメントの少なくとも1つがeffectとしてallowを持ち、どのステートメントもeffectとしてdenyを持っていない必要があります。
allowed_actions
  • ユーザーがオブジェクトに対して実行できるアクションを定義するキーです。
  • 許可されるアクションは以下のとおりです:
    • GetObject: オブジェクトデータを取得する
    • PutObject: オブジェクトデータを作成、書き込み、更新する
    • DeleteObject: オブジェクトデータを削除する
paths
  • このキーはオブジェクトの場所パスを定義します。
  • 値は標準ファイルパス形式で提供します。値は配列として提供する必要があります。
  • サブディレクトリまたはバケット内のすべてのオブジェクトを示すために、アスタリスク「*」特殊文字を使用できます。
  • 動的変数X_ZUIDX_ORGIDを使用してパスを定義することもできます。これらの動的変数はそれぞれUserIDOrgIDの値を保持します。これらの動的変数を使用するには、実際のUserIDOrgID名でディレクトリとオブジェクトを定義する必要があります。動的変数を使用したオブジェクトパスの定義の詳細については、このセクションをご覧ください。
condition このJSONキーは、アクションが発生する条件を定義します。
user このJSONキーはconditionキー内で使用され、定義される条件が適用されるユーザーまたはユーザーセットを指定します。
  • auth_typezuidの2つのJSONキーを含みます。
  • auth_type JSONキーを使用してユーザーのタイプを定義できます
  • デフォルトの権限テンプレートを使用してバケットを作成すると、auth_typeにはデフォルト値が含まれます
  • auth_type JSONキーには「public」または「authenticated」の2つの値のみ含めることができます。
  • zuid JSONキーは、条件が適用されるユーザーを決定するために使用されます。
  • zuidには、すべてのZUIDが条件に該当することを意味する特殊文字アスタリスク「*」を含めるか、条件が適用される特定のユーザーを指定するZUIDの配列を含めることができます。
  • org_detailsはJSONオブジェクトを受け入れるJSONキーです。JSONオブジェクトはJSONキーと値のペアとして定義され、キーはzaaid、値はzuid valuesの配列です。
注意: ユーザーIDに基づくアクセスは、zuid values JSONキーと値のペアまたはorg_details JSONのいずれかを使用して決定できます。両方を使用してユーザーアクセスを定義することはできません。
Operators 条件の適用・不適用のケースを定義するのに役立つJSONキーです。
string_equals 文字列値が等しい場合に発生するアクションを指定します。
string_not_equals 文字列値が一致しない場合に発生するアクションを定義します。
string_equals_ignore_case 使用される大文字・小文字に関係なく文字列値が一致できるアクションを定義します。
string_not_equals_ignore_case 使用される大文字・小文字に関係なく文字列値が一致しない場合に発生するアクションを定義します。
string_like 文字列値の一部が指定したキーと一致する場合、オブジェクトに対してアクションを実行できます。
string_not_like 文字列値の一部が指定したキーと一致しない場合、オブジェクトに対してアクションを実行できます。
ip_address 許可している特定のIPからリクエストが送信された場合のアクションを定義します。
not_ip_address 特に停止しているIPからリクエストが送信された場合に発生するアクションを定義します。
Condition Keys
referrer このJSONキーには、アクションが要求された完全なURLの値が含まれます。値は配列として提供する必要があります。例えば、マイクロサービスを作成し、Catalyst AppSailでホストしたとします。referrerの値はこのマイクロサービスの完全なURLとなり、権限はこのマイクロサービスに関連するアクションのみに定義されます。このキーは以下の演算子で使用されます:
  • string_equals
  • string_not_equals
  • string_equals_ignore_case
  • string_not_equals_ignore_case
  • string_like
  • string_not_like
user_agent このJSONキーには、リクエストが行われたソースの値が含まれます。値は配列として提供する必要があります。リクエストのソースがAPI、ブラウザなどであるかどうかを示します。このキーは以下の演算子で使用されます:
  • string_equals
  • string_not_equals
  • string_equals_ignore_case
  • string_not_equals_ignore_case
  • string_like
  • string_not_like
source_ip このJSONキーには、公開されているIPアドレスの値のみが含まれます。値は配列として提供する必要があります。特定のIPからのアクションを許可または拒否する権限を定義するのに役立ちます。このキーは以下の演算子で使用されます:
  • ip_address
  • not_ip_address
version
  • 権限テンプレートのバージョンを示し、現在のバージョン値 - v1を保持します。
  • このキーの値を変更しないことを強くお勧めします。
注意: 権限を定義する際には、JSONキーの正確な名前を使用していることを確認してください。

動的変数

権限を設定する際に、動的変数を使用してオブジェクトパスを定義できます。実行時に、これらの変数はオブジェクトのパスを定義する関連値を保持します。Stratusでは、以下の動的変数を使用してパスを定義できます:

  • X_ZUID: 実行時に実際のUserIDsを保持します。
  • X_ORGID: 実行時に実際のOrgIDsを保持します。
注意: 動的変数が機能するには、UserIDsまたはOrgIDsでオブジェクトパスを作成する必要があります。動的変数はこれらの値のみを保持するためです。

動的変数を作成する構文

動的変数を使用するには、以下の構文を使用する必要があります:

“paths”: [“bucket_name::/${var:X_ZUID}/*”]

“paths”: [“bucket_name::/${var:X_ORGID}/*”]

注意:
  • paths: オブジェクトのパスの値を保持します

  • bucket_name: バケットの名前の値を保持します

動的変数を使用する構文

以下の例では、X_ZUID動的変数を使用してオブジェクトのパスを定義しています

Define path using the X_ZUID dynamic variable
copy
{
    "version": "v1",
    "rules": [
        {
            "rule_id": "Example rule to allow user to access the path which has their ZUID in the path",
            "condition": {
                "user": {
                    "auth_type": "authenticated",
                    "zuid": "*"
                }
            }
        }
    ],
    "effect": "allow",
    "allowed_actions": [
        "GetObject"
    ],
    "paths": [
        "bucketName::/${var:X_ZUID}"  //Use the X_ORGID variable to define the path using OrgIDs
    ]
}
注意:
  • 動的変数は、権限テンプレートが全体的にAuthenticatedに設定されているバケットで使用するのが最適です。

カスタム権限を示す例

ここでは、バケット内のオブジェクトの権限を定義するために作成できるカスタム権限テンプレートの例をいくつか見ていきましょう。

例1

Custom Permission Example
copy
{
 "version" : "v1",
    "rules" : [
  {
   "rule_id" :  "Example rule where all authenticated ZUID users can perform all actions on a particular object",
   "effect"   :  "allow",
   "allowed_actions" : ["GetObject", "PutObject", "DeleteObject"],
   "paths" : ["bucketName::/user/*", "bucketName::/document/readme.md"],
   "condition" : [
    "user" :  {
     "auth_type" : "authenticated",
     "zuid" : "*"
    }
   ]  
  }
 ]
}

上記のスニペットから、以下のことがわかります:

  • 権限はauthenticated権限テンプレートバケットに設定されています

  • ユーザーがGetObjectPutObject、およびDeleteObject操作を実行できるように権限が定義されます。

  • この権限は、user/パスに存在するすべてのオブジェクトにのみ適用され、バケット内のdocument/パスに存在するreadme.mdオブジェクトにのみ適用されます。

  • 権限はすべてのZUIDに対して有効です。

これらをまとめると、上記の権限は、すべての認証されたユーザーがdocument/パスに存在するreadme.mdオブジェクトおよびuser/パスに存在するすべてのオブジェクトに対してすべてのアクションを実行するために定義されていることがわかります。

例2

Custom Permission Example
copy
{
 "version" : "v1",
"rule" : [
  {
   "rule_id"  : "Example rule to allow user to access the path which has their ZUID in the path",
   "effect" : "allow",
   "allowed_actions" : ["GetObject"],
   "paths" : ["bucketName::/${var:X_Zuid}"],
  }
 ]
}

上記のスニペットから、以下のことがわかります:

  • オブジェクトのパス名はZUIDに基づいて定義され、その値は実行時に動的に取得されます。

  • パス内の特定のオブジェクトに対してGetObjectアクションの実行が許可されます。

これらをまとめると、上記の権限は、動的に取得されるZUID値と名前が一致するオブジェクトに対してGetObjectアクションが実行されるように定義されていることがわかります。

例3

Custom Permission Example
copy
{
 "version" : "v1",
"rule" : [
  {
   "rule_id"  : "Example rule to deny specific users from accessing all the objects present in a particular path",
   "effect" : "deny",
   "allowed_actions" : ["GetObject", "PutObject", "DeleteObject"],
   "paths" : ["bucketName::/denyPath/*"],
   "condition" : {
    "user" : {
      "auth_type" : "authenticated",
      "zuid" : ["123", "456", "789"]
     }
   }
  }
 ]
}

上記のスニペットから、以下のことがわかります:

  • 権限は、ZUIDが配列としてリストされている特定の認証されたユーザーに適用されます。

  • 特定のユーザーはバケット内のすべてのオブジェクトに対してGetObjectPutObject、またはDeleteObjectアクションを実行できません。

これらをまとめると、上記の権限は指定されたZUIDを持つ認証されたユーザーに対して定義されていることがわかります。指定されたユーザーは特定のパスに存在するすべてのオブジェクトに対してアクションを実行することが許可されていません。

例4

Custom Permission Example
copy
{
 "version" : "v1",
"rule" : [
  {
  "rule_id"  : "Example rule employing specific action for specific public paths in the bucket",
  "effect" : "allow",
  "allowed_actions" : ["GetObject"],
  "paths" : ["bucketName::/publicPath/*", "bucketName::/otherPath/otherPublicPath/*"],
   "condition" : {
    "user" : {
      "auth_type" : "public",
     }
    }
  },
  {
   "rule_id" : "Example rule where specifc actions can be performed on objects present in specific authenticated path, and these actions can be performed by all authenticated users",
   "effect" : "allow",
   "allowed_actions" : ["GetObject", "PutObject", "DeleteObject"],
   "paths" : ["bucketName::/authenticatedUser/*", "bucketPath::/otherProtectedPath/*"],
   "condition" : {
    "user" : {
     "auth_type" : "authenticated",
     "zuid" : "*"
    }
   }
  }
  ]
}

上記のスニペットから、以下のことがわかります:

  • このバケットに対して2つのルールが定義されています。バケット内の特定のパスはpublicとしてリストされ、バケット内の特定のパスはauthenticatedユーザーのみがアクセスできます。

  • publicパスに該当するオブジェクトに対して実行できるアクションはGetObjectのみです。ただし、authenticatedパスにあり、認証されたユーザーのみがアクセスできるオブジェクトについては、authenticatedパスで許可されるアクションはGetObjectPutObject、およびDeleteObjectです。

これらをまとめると、上記の権限は2つのルールで定義されていることがわかります。最初のルールは、パス内のすべてのオブジェクトがpublicであるため誰でもアクセスできるパスの権限を定義します。publicパス内のオブジェクトに対して実行できるアクションはGetObjectのみです。

2番目のルールでは、すべての認証されたユーザーauthenticatedパスにリストされているすべてのオブジェクトに対してGetObjectPutObject、およびDeleteObjectアクションを実行できます。

例5

Custom Permission Example
copy
{
    "version" : "v1",
    "rules" : [ 
        {
            "rule_id" : "RuleNumber1",
            "effect" : "allow",
            "allowed_actions" : ["GetObject", "PutObject"],
            "paths" : ["bucketname::/protectedpath/*"],
            "condition" : {
                "user" : {
                    "auth_type" : "authenticated",
                    "zuid" : "*"
                },
                "string_equal" : {
                    "user_agent" : ["Mozilla/5.0"],
                    "referrer" : ["https://www.example.com", "https://www.example.com/get_user/"]
                },
             "ip_address" : {
                    "source_ip" : ["121.67.8.1"]
                }
            }
        },
        {
            "rule_id" : "RuleNumber2",
            "effect" : "deny",
            "allowed_actions" : ["GetObject"],
            "paths" : ["bucketname::/denypath/*"],
            "condition" : {
                "user" : {
                    "auth_type" : "authenticated"
                },
                "string_like" : {
                    "user_agent" : ["PostmanRuntime/7.39.0"]
                }
            }
        },
       {
            "rule_id" : "RuleNumber3",
            "effect" : "allow",
            "allowed_actions" : ["PutObject"],
            "paths" : ["bucketname::/uploadhere/*"],
            "condition" : {
                "user" : {
                    "auth_type" : "authenticated",
                    "org_details" : {
                        "zaaid" : ["12096000001275047", "12096000001278879"]                    }
                },
                "not_ip_address" : {
                    "source_ip" : ["122.23.44.19"]
                }
            }
        }
    ]
}

上記のスニペットから、RuleNumber1RuleNumber2、およびRuleNumber3の3つのルールが定義されていることがわかります。

  • RuleNumber1

    • オブジェクトへのアクセスは、アクセスを試みるシステムのIPアドレスがip_address JSON内のsource_ipにリストされている値と一致する場合のみ可能です。
    • オブジェクトへのアクセスは、zaaidUser IDs)がorg_details JSON内にリストされているものと一致するユーザーのみが可能です。
    • オブジェクトへのアクセスは、Webからのアクセス試行がMozillaブラウザによるものであり、アクセス要求が記載されたreferrersから発信された場合のみ可能です。
    • ルールはすべての認証されたユーザーに対して定義されています。
    • アクセス要求が上記のすべての条件を満たす場合、定義されたパスではGetObjectおよびPutObjectアクションのみが許可されます。
  • RuleNumber2

    • ルールは、user_agentPostmanPostman APIプラットフォームを使用してリクエストが行われた)であるアクセス要求を試みる認証されたユーザーに対して定義されています。
    • 定義されたパスでは、そのようなユーザーはGetObject操作の実行を拒否されます。
  • RuleNumber3

    • ルールは、not_ip_address JSON内のsource_ipに記載されたIPアドレスを除く任意のIPアドレスからリクエストが行われた場合に適用されるように定義されています。
    • ルールは認証されたユーザーのみに適用され、特にorg_details JSONで定義されたzaaidを持つユーザーに適用されます。
    • ユーザーが上記のすべての条件を満たすアクセス要求を試みた場合、定義されたパスでPutObjectを実行することが許可されます。

バケットに保存されたオブジェクトのカスタム権限設定

カスタム権限を設定するには:

  1. リストから必要なバケットを選択します。 catalyst_stratus_permissions_selectiomn_button

  2. Bucket Permissionsタブに移動します。Edit Permissionをクリックします。 catalyst_stratus_buckets_permissions_section_tab

  3. 要件に応じて権限を編集し、Updateをクリックして変更を確認します。 catalyst_stratus_permisions_updating

権限が設定に従って適用されます。

注意: カスタム権限の詳細については、このヘルプドキュメントを参照してください。

最終更新日 2026-03-05 11:43:24 +0530 IST