マスター権限
注釈:本資料はAI技術を用いて翻訳されています。
はじめに
権限は、AccelByte Gaming Services(AGS)リソースを使用するユーザーとアプリケーションにアクセス権を付与します。権限は認可システムの基盤であり、以下の要素で構成されています:
-
権限要件:ほとんどのAGS APIエンドポイントには権限が必要です。
注記APIエンドポイントドキュメントでは、各エンドポイントに必要な権限を確認できます。
-
権限付与:管理ポータルを使用して、IAMクライアント経由でアプリケーションに、ロール経由でユーザーに権限を割り当てることができます。
本記事では、AGS権限の詳細とその使用方法について説明します。また、IAMクライアント経由でアプリケーションに、ロール経由でユーザーに割り当て可能な権限に関するガイドへのリンクも記載しています。
構文
権限は、権限リソースと権限アクションで構成されます。
権限リソース
AccelByte Gaming Services(AGS)ではRESTful API設計を採用しています。RESTful APIにおける主要なデータ表現は「リソース」です。AGSでは、権限リソースはコロンで区切られた複数のトークンを含む文字列として表現されます。この文字列には、権限が適用されるネームスペースやユーザー、保護対象オブジェクトの名前などの情報を含めることができます。
権限アクション
権限アクションは、ユーザーまたはアプリケーションがリソースに対して実行できる操作を定義します。アクションには、Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)があります。
権限要件
AGSエンドポイントの権限を定義する際は、上記の構文に従ってください。以下は、4つのトークンを含むAGSエンドポイントの権限要件テンプレートです:
[ADMIN:][NAMESPACE:<namespace>:][USER:<userId>:]<OBJECTNAME>
-
ADMIN:管理リソース用の権限であることを示すオプションのトークンです。ADMINエンドポイントの権限にのみプレフィックスとして付与し、以下のシナリオで使用します:- IAMクライアントが認可する、AGSとアプリケーション間の信頼された内部API呼び出し。
- 適切なロールを持つ管理ユーザーが、管理ポータル(または他の適切な外部ツール)を使用して実行する呼び出し。
例えば、ロール情報を検索するエンドポイントには管理者権限が必要です:
エンドポイント 権限 説明 GET /iam/v3/admin/rolesADMIN:ROLE [READ]ロールはネームスペースやユーザーに属さないプラットフォームレベルのオブジェクトであるため、権限に NAMESPACE:{namespace}やUSER:{userId}は含まれません。- パブリックエンドポイントは常に非管理者権限を使用します。有効なアクセストークンを持つ認可済みユーザーアカウントであれば、これらのエンドポイントを呼び出すことができます。
-
NAMESPACE:{namespace}:リソースがネームスペースレベルにある場合にのみ使用するオプションのトークンです。IAMクライアント、ストア、その他のリソースで必要となります。権限が適用されるネームスペースを示し、構文はNAMESPACE:の後にネームスペース名のプレースホルダー{namespace}が続きます。例えば、特定のネームスペース内でIAMクライアントを作成するエンドポイントには管理者権限が必要です:エンドポイント 権限 説明 POST /iam/v3/admin/namespaces/{namespace}/clientsADMIN:NAMESPACE:{namespace}:CLIENT [CREATE]POST /iam/v3/admin/namespaces/accelbyte/clients経由でリソースにアクセスする場合、権限はADMIN:NAMESPACE:accelbyte:CLIENT [CREATE]となります。IAMクライアントはネームスペースレベルのリソースですが、ユーザー固有のリソースではないため、権限にUser:userIdは含まれません。 -
USER:{userId}:ユーザー固有のリソースにのみ使用するオプションのトークンです。NAMESPACE:{namespace}と同様に、権限が適用されるユーザーを表します。構文はUSER:の後にユーザーIDプレースホルダー{userId}が続きます。例えば、特定のネームスペース内の特定ユーザーに属するエンタイトルメントを検索するエンドポイントには、以下の管理者権限が必要です:エンドポイント 権限 説明 GET /admin/namespaces/{namespace}/users/{userId}/entitlementsADMIN:NAMESPACE:{namespace}:USER:{userId}:ENTITLEMENT [READ]GET /admin/namespaces/accelbyte/users/1234/entitlements経由でリソースにアクセスする場合、必要な権限はADMIN:NAMESPACE:accelbyte:USER:1234:ENTITLEMENT [READ]となります -
OBJECTNAME:PROFILEやCURRENCYなど、保護されたリソースオブジェクトを表す必須トークンです。例えば、ネームスペース内の通貨を検索するエンドポイントの管理者権限は以下のとおりです:エンドポイント 権限 説明 GET /admin/namespace/{namespace}/currenciesADMIN:NAMESPACE:{namespace}:CURRENCY [READ]権限リソースには、コロンで区切られた複数のオブジェクト名を含めることができますが、これは推奨しません。
権限付与
- Shared Cloudで
- Private Cloudで
Shared Cloudでは、IAMクライアントへの権限の付与は、必要に応じて権限を切り替えることで簡単に実行できます。詳細については、IAMクライアントを作成するおよびIAMクライアント権限を追加および編集するを参照してください。
Private Cloudでは、権限リソースを提供することにより、IAMクライアントに権限が手動で付与されます。これを行うには、構文セクションで説明されているように、権限の適切な構文に従う必要があります。 詳細については、IAMクライアントを作成するおよびIAMクライアント権限を追加および編集するを参照してください。
Shared Cloudと同様のトグル権限機能は、Private Cloudで近日中に利用可能になります。
4つの個別のトークンを含む付与された権限のテンプレートは次のとおりです:
[ADMIN:][NAMESPACE:<namespace>:][USER:<userId>:]<OBJECTNAME>
-
ADMIN:これはADMINエンドポイントの権限要件と同じです。管理リソースの権限にプレフィックスを付ける必要があります。たとえば、ロールのCRUD(Create、Read、Update、Delete)の管理者権限です。権限 説明 ADMIN:ROLE [CREATE] | [READ] | [UPDATE] | [DELETE]アクション間のロジックはビット単位のOR(|)です。 -
NAMESPACE:{namespace}:オプション;リソースがネームスペースレベルにある場合にのみ使用します。構文は
NAMESPACE:で、その後にネームスペース名のプレースホルダー{namespace}、*(ワイルドカード)、または特定のネームスペース名が続きます。-
{namespace}:この値は、バックエンドに対して、ユーザーまたはアプリケーションから付与されたネームスペースに動的に解決するように指示します。これは、対応する権限を持つクライアントとユーザーが特定のネームスペースのリソースのみを使用できることを意味します。たとえば、これはシステムがユーザーアカウントとアプリケーションに付与するネームスペースでIAMクライアントを作成するためのアクセスを許可する権限です。権限 説明 ADMIN:NAMESPACE:{namespace}:CLIENT [CREATE]システムはアスタリスク( *)をワイルドカードとして解釈し、すべてのネームスペースでそのリソースへのアクセスを許可します。たとえば、これは任意のネームスペースでIAMクライアントを作成するためのアクセスを許可する権限です:ADMIN:NAMESPACE:*:CLIENT -
特定のネームスペース名:ネームスペースを指定する場合(例:NAMESPACE:namespace_A)、システムはその特定のネームスペースのリソースに対してのみ権限を付与します。スーパー管理者は、これを使用して、特定のゲームネームスペースのリソースに対してのみカスタマーサポートユーザーに限定的な管理者アクセスを提供する方法を提供できます。権限 説明 ADMIN:NAMESPACE:namespace_A:CLIENT [CREATE]この権限は、特定のネームスペース(namespace_A)でのみIAMクライアントを作成するためのアクセスを許可します。
-
-
USER:userId:これはオプションです。ユーザー固有のリソースにのみ使用する必要があります。構文は
USER:の後にユーザーIDプレースホルダー{userId}またはワイルドカードアスタリスクが続きます。-
{userId}:この値は、バックエンドに対して、ログインしているユーザーのIDに動的にバインドし、{userId}をユーザーの実際のIDに置き換えるように指示します。これは、対応する権限を付与されたクライアントとユーザーが特定のユーザーに属するリソースを使用できることを意味します。たとえば、これは任意のネームスペースでログインしているユーザーのエンタイトルメントを検索するためのアクセスを許可する権限です。権限 説明 ADMIN:NAMESPACE:*:USER:{userId}:ENTITLEMENT [READ]システムはアスタリスク( *)をワイルドカードとして解釈し、任意のユーザーに属するリソースへのアクセスを許可します。たとえば、これは任意のネームスペースの任意のユーザーからエンタイトルメントを検索するためのアクセスを許可する権限です:ADMIN:NAMESPACE:*:USER:*:ENTITLEMENT [READ]。
-
-
OBJECTNAME:これはADMINエンドポイントの権限要件とほぼ同じです。ここでの構文は、特定のオブジェクト名またはワイルドカードアスタリスクのいずれかです。-
特定のオブジェクト名:保護されたリソースオブジェクトを表します。たとえば、これは特定のネームスペースの特定のユーザーに属するプロファイルを検索するためのアクセスを許可する権限です。
権限 説明 ADMIN:NAMESPACE:{namespace}:USER:{userId}:PROFILE [READ]すべてのリソースオブジェクトへのアクセスを許可する場合は、オブジェクト名をワイルドカード( *)アスタリスクに置き換えます。たとえば、これは任意のネームスペースでログインしているユーザーから何でも検索するためのアクセスを許可する権限です:ADMIN:NAMESPACE:*:USER:{userId}:* [READ]
-
トラブルシューティング
このセクションでは、サービスを使用する際に発生する可能性のあるエラーと問題をリストします。
各AGSエンドポイントに必要な権限を見つける方法は?
APIエンドポイントドキュメントを検索してください。各エンドポイントに必要な権限がリストされています。
権限に関連するエラーを解決する方法は?
リソースセクションのエラーと例外を確認してください。
次のステップ
ユーザーロールを管理する方法とIAMクライアントを管理する方法を学びます。