メインコンテンツまでスキップ

パーミッションの基礎

Last updated on April 7, 2026

注釈:本資料はAI技術を用いて翻訳されています。

はじめに

パーミッションは、AccelByte Gaming Service (AGS) リソースを使用するユーザーとアプリケーションにアクセス権を付与します。パーミッションは承認システムの基盤であり、以下の要素で構成されます。

  1. パーミッション要件: ほとんどの AGS API エンドポイントはパーミッションを必要とします。

    注記

    API エンドポイントドキュメント には、各エンドポイントにシステムが必要とするパーミッションが記載されています。

  2. パーミッション付与: Admin Portal を使用して、IAM クライアント経由でアプリケーションに、およびロール経由でユーザーにパーミッションを割り当てることができます。

この記事では、AGS パーミッションとその使用方法について詳しく説明します。IAM クライアントとロールを通じてユーザーに割り当てることができるパーミッションを示す関連ガイドへのリンクも提供しています。

構文

パーミッションは_パーミッションリソース_と_パーミッションアクション_で構成されます。

パーミッションリソース

AccelByte Gaming Services (AGS) には RESTful API 設計を使用しています。RESTful API では、主要なデータ表現は_リソース_です。AGS では、パーミッションリソースはコロンで区切られた複数のトークンを含む文字列です。パーミッションが適用される namespace とユーザーの詳細、および保護されたオブジェクトの名前を含めることができます。

パーミッションアクション

パーミッションアクションは、パーミッションがユーザーまたはアプリケーションにリソースに対して何を実行できるかを記述します。アクションは: 作成、読み取り、更新、削除です。

パーミッション要件

AGS エンドポイントのパーミッションを定義する際は、上記の一般的な構文に従ってください。例えば、4 つの別々のトークンを含む AGS エンドポイントのパーミッション要件のテンプレートを以下に示します。

[ADMIN:][NAMESPACE:<namespace>:][USER:<userId>:]<OBJECTNAME>
  • ADMIN: パーミッションが管理リソース用であることを示すオプションのトークンです。ADMIN エンドポイントのパーミッションにのみプレフィックスとして付ける必要があり、以下のシナリオで使用されます:

    • IAM クライアントが承認する AGS とアプリケーション間の信頼された内部 API 呼び出し。
    • 正しいロールを持つ管理者ユーザーが Admin Portal(または別の適切な外部ツール)を使用して呼び出しを実行できる。

    例えば、ユーザーはロール情報を検索するために使用するエンドポイントに管理者パーミッションが必要です。

    エンドポイントパーミッション説明
    GET /iam/v3/admin/rolesADMIN:ROLE [READ]ロールはどの namespace またはユーザーにも属さないプラットフォームレベルのオブジェクトであるため、パーミッションには NAMESPACE:{namespace} または USER:{userId} は含まれません。
    • パブリックエンドポイントは常に非管理者パーミッションを使用します。有効なアクセストークンを持つ承認されたユーザーアカウントはこれらのエンドポイントを呼び出すことができます。
  • NAMESPACE:{namespace}: このオプションのトークンは、リソースが名前空間レベルにある場合にのみ使用します。IAM クライアント、ストア、その他のリソースが必要とします。パーミッションが適用される namespace を示します。構文は文字列 NAMESPACE: とそれに続く namespace 名プレースホルダー {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 クライアントは namespace レベルにありますが、ユーザー固有のリソースではないため、パーミッションに User:userId はありません。
  • USER:{userId}: このオプションのトークンはユーザー固有のリソースにのみ使用します。このトークンは NAMESPACE:{namespace} に似ており、パーミッションが適用されるユーザーを表します。構文は USER: とそれに続くユーザー ID プレースホルダー {userId} です。例えば、特定の namespace の特定のユーザーに属するエンタイトルメントを検索するためのエンドポイントに必要な管理者パーミッションを示します。

    エンドポイントパーミッション説明
    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 などの保護されたリソースオブジェクトを表します。例えば、namespace の通貨を検索するためのエンドポイントに対する管理者パーミッションです。

    エンドポイントパーミッション説明
    GET /admin/namespace/{namespace}/currenciesADMIN:NAMESPACE:{namespace}:CURRENCY [READ]パーミッションリソースにはコロンで区切られた複数のオブジェクト名を含めることができますが、推奨しません。

パーミッション付与

Shared Cloud では、IAM クライアントへのパーミッション付与は事前定義されたパーミッションを必要に応じてトグルすることで簡単に行えます。詳細は、IAM クライアントの作成IAM クライアントパーミッションの追加と編集 を参照してください。

ただし、Extend Service Extension を使用してカスタム API を作成し、プレイヤーまたはゲームサーバーがアクセスできるようにしたい場合は、IAM クライアントまたはデフォルトユーザーロールにカスタムパーミッションを追加することもできます。Shared Cloud のカスタムパーミッションは、AGS 組み込みパーミッションとの競合やスタジオ間のアクセスを防ぐために事前定義された形式に従う必要があります。詳細は Shared Cloud のカスタムパーミッション を参照してください。

トラブルシューティング

このセクションでは、サービスの使用時に発生する可能性があるエラーと問題を一覧にしています。

各 AGS エンドポイントに必要なパーミッションを見つける方法

API エンドポイントドキュメント を検索してください。各エンドポイントに必要なパーミッションが記載されています。

パーミッション関連のエラーを解決する方法

リソースセクション のエラーと例外を確認してください。

次のステップ

ユーザーロールの管理IAM クライアントの管理 について学びましょう。