--- title: "Stratus 権限" url: https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/stratus-permissions/ description: "StratusはCatalystを搭載した堅牢なクラウドストレージソリューションです。バケットとオブジェクトの形式で、あらゆるフォーマットタイプのデータを保存できます。" last_updated: 2026-08-17T12:16:04Z service: Cloud Scale type: general related_links: - name: "Create a Bucket" url: /ja/cloud-scale/help/stratus/buckets/create-bucket/ - name: "Java SDK" url: /ja/sdk/java/v1/cloud-scale/stratus/overview/ - name: "Node.js SDK" url: /ja/sdk/nodejs/v2/cloud-scale/stratus/overview/ - name: "Python SDK" url: /ja/sdk/python/v1/cloud-scale/stratus/overview/ - name: "Web SDK" url: /ja/sdk/web/v4/cloud-scale/stratus/overview/ - name: "iOS SDK" url: /ja/sdk/ios/v2/cloud-scale/stratus/overview/ - name: "Android SDK" url: /ja/sdk/android/v2/cloud-scale/stratus/overview/ - name: "Flutter SDK" url: /ja/sdk/flutter/v2/cloud-scale/stratus/overview/ - name: "REST API" url: /ja/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets --- # Stratus権限 ### デフォルト権限テンプレート 2種類のデフォルト権限テンプレートのいずれかを使用してバケットを作成できます。 ![catalyst_stratus_name_bucket](https://catalyst-docs-development.zohostratus.in/images/help/stratus/catalyst_stratus_name_bucket.webp) * **Authenticated権限テンプレート**: このデフォルト権限テンプレートを使用して作成されたバケットは、アプリケーションのクライアントポータルで認証されたユーザーのみがバケットのすべてのオブジェクトにアクセスできることを規定します。 * **Public権限テンプレート**: このデフォルト権限テンプレートを使用して作成されたバケットは、インターネット上のすべてのエンドユーザーが認証要件なしにバケットのオブジェクトにアクセスできるようにします。 > **注意:** * 両方の権限テンプレートは、[バケットを作成](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/buckets/create-bucket/)する際に選択する必要があるデフォルトタイプです。これらのテンプレートは編集可能で、バケットに保存された個々のオブジェクトの権限も編集できます。 * 設定された権限はプロジェクトユーザーにのみ適用され、コラボレーターには適用されません。 * これらの権限はエンドユーザーのアクセスレベルを定義するためのものであり、*Collaborators*や*Administrators*のためのものではありません。コラボレーターのアクセスレベルは[Profiles & Permissions](https://docs.catalyst.zoho.com/ja/getting-started/set-up-a-catalyst-project/profiles-and-permissions/)セクションで定義できます。 * 選択した権限テンプレートに関係なく、バケット内の**upload**アクションは**認証されたユーザー**のみが実行できます。 ### カスタム権限 バケットを作成する際に、デフォルトの権限テンプレート(**Authenticated**または**Public**)を選択する必要があります。選択に基づいてデフォルトの権限テンプレートが読み込まれ、バケットが作成されます。これに加えて、選択した権限テンプレートに関係なく、シンプルなJSONコードを使用して**個々のオブジェクトごとの権限を定義**したり、サブディレクトリ全体の権限を定義したりできます。 ![catalyst_stratus_permisions_updating](https://catalyst-docs-development.zohostratus.in/images/help/stratus/catalyst_stratus_permisions_updating.webp) 選択に基づいて読み込まれるデフォルトの権限テンプレートを以下に示します: #### デフォルトAuthenticated権限テンプレート **Authenticated Permission Template** ```json { "rules": [ { "rule_id": "AuthenticatedBucket_Rule1", "condition": { "user": { "auth_type": "authenticated", "zuid": "*" } }, "allowed_actions": [ "GetObject" ], "paths": [ "vendorstats::/*" ], "effect": "allow" } ], "version": "v1" } ``` #### デフォルトPublic権限テンプレート **Authenticated Permission Template** ```json { "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_ZUID`と`X_ORGID`を使用してパスを定義することもできます。これらの動的変数はそれぞれ**UserID**と**OrgID**の値を保持します。これらの動的変数を使用するには、実際の**UserID**と**OrgID**名でディレクトリとオブジェクトを定義する必要があります。動的変数を使用したオブジェクトパスの定義の詳細については、[このセクション](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/stratus-permissions/#dynamic-variables)をご覧ください。
`condition` このJSONキーは、アクションが発生する条件を定義します。
`user` このJSONキーはconditionキー内で使用され、定義される条件が適用されるユーザーまたはユーザーセットを指定します。
  • `auth_type`と`zuid`の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](https://docs.catalyst.zoho.com/ja/serverless/help/appsail/introduction/)でホストしたとします。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** ```json { "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** ```json { "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権限テンプレート**バケットに設定されています * ユーザーが`GetObject`、`PutObject`、および`DeleteObject`操作を実行できるように権限が定義されます。 * この権限は、`user/`パスに存在するすべてのオブジェクトにのみ適用され、バケット内の`document/`パスに存在する`readme.md`オブジェクトにのみ適用されます。 * 権限はすべての*ZUID*に対して有効です。 これらをまとめると、上記の権限は、すべての認証されたユーザーが`document/`パスに存在する**readme.md**オブジェクトおよび`user/`パスに存在するすべてのオブジェクトに対してすべてのアクションを実行するために定義されていることがわかります。 **例2** **Custom Permission Example** ```json { "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** ```json { "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*が配列としてリストされている特定の認証されたユーザーに適用されます。 * 特定のユーザーはバケット内のすべてのオブジェクトに対して`GetObject`、`PutObject`、または`DeleteObject`アクションを実行できません。 これらをまとめると、上記の権限は指定された*ZUID*を持つ認証されたユーザーに対して定義されていることがわかります。指定されたユーザーは特定のパスに存在するすべてのオブジェクトに対してアクションを実行することが許可されていません。 **例4** **Custom Permission Example** ```json { "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パスで許可されるアクションは`GetObject`、`PutObject`、および`DeleteObject`です。 これらをまとめると、上記の権限は2つのルールで定義されていることがわかります。最初のルールは、パス内のすべてのオブジェクトが*public*であるため誰でもアクセスできるパスの権限を定義します。publicパス内のオブジェクトに対して実行できるアクションは`GetObject`のみです。 2番目のルールでは、すべての*認証されたユーザー*が*authenticatedパス*にリストされているすべてのオブジェクトに対して`GetObject`、`PutObject`、および`DeleteObject`アクションを実行できます。 **例5** **Custom Permission Example** ```json { "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"] } } } ] } ``` 上記のスニペットから、`RuleNumber1`、`RuleNumber2`、および`RuleNumber3`の3つのルールが定義されていることがわかります。 - `RuleNumber1` - オブジェクトへのアクセスは、アクセスを試みるシステムのIPアドレスが`ip_address` JSON内の`source_ip`にリストされている値と一致する場合のみ可能です。 - オブジェクトへのアクセスは、`zaaid`(*User IDs*)が`org_details` JSON内にリストされているものと一致するユーザーのみが可能です。 - オブジェクトへのアクセスは、Webからのアクセス試行がMozillaブラウザによるものであり、アクセス要求が記載された`referrers`から発信された場合のみ可能です。 - ルールはすべての**認証されたユーザー**に対して定義されています。 - アクセス要求が上記のすべての条件を満たす場合、定義されたパスでは`GetObject`および`PutObject`アクションのみが許可されます。 - `RuleNumber2` - ルールは、`user_agent`が**Postman**([Postman APIプラットフォーム](https://www.postman.com/)を使用してリクエストが行われた)であるアクセス要求を試みる認証されたユーザーに対して定義されています。 - 定義されたパスでは、そのようなユーザーは`GetObject`操作の実行を拒否されます。 - `RuleNumber3` - ルールは、`not_ip_address` JSON内の`source_ip`に記載されたIPアドレスを除く任意のIPアドレスからリクエストが行われた場合に適用されるように定義されています。 - ルールは**認証されたユーザー**のみに適用され、特に`org_details` JSONで定義された`zaaid`を持つユーザーに適用されます。 - ユーザーが上記のすべての条件を満たすアクセス要求を試みた場合、定義されたパスで`PutObject`を実行することが許可されます。 ### バケットに保存されたオブジェクトのカスタム権限設定 カスタム権限を設定するには: 1. リストから必要なバケットを選択します。 ![catalyst_stratus_permissions_selectiomn_button](https://catalyst-docs-development.zohostratus.in/images/help/stratus/catalyst_stratus_permissions_selectiomn_button.webp) 2. *Bucket Permissions*タブに移動します。**Edit Permission**をクリックします。 ![catalyst_stratus_buckets_permissions_section_tab](https://catalyst-docs-development.zohostratus.in/images/help/stratus/catalyst_stratus_buckets_permissions_section_tab.webp) 3. 要件に応じて権限を編集し、**Update**をクリックして変更を確認します。 ![catalyst_stratus_permisions_updating](https://catalyst-docs-development.zohostratus.in/images/help/stratus/catalyst_stratus_permisions_updating.webp) 権限が設定に従って適用されます。 > **注意:** カスタム権限の詳細については、この[ヘルプドキュメント](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/stratus-permissions/#custom-permissions)を参照してください。