Open Cloudは、APIキーを使用してAPIアクセスを認証および承認します。これにより、データストアや場所など、ゲーム内の特定のリソースにアクセスし利用するための詳細な権限とセキュリティ制御を追加できます。
すべてのOpen Cloud APIは、有効な権限を持つAPIキーを作成し、リクエストにx-api-keyヘッダーを含めることを要求します。これにより、アプリケーションはあなたの代わりにOpen Cloudに認証できます。
APIキーの作成
リソースにアクセスするためのAPIキーを作成および構成できます。APIキーのアクセスは、それを所有するユーザーの権限によって決まります。つまり、一般的にそのユーザーが権限を持つ任意のリソースにアクセスでき、個々のゲームや適切な役割を持つグループ所有のゲームにもアクセスできます。一部のスコープは特定のゲームに制限されることがありますが、すべてではありません。
グループリソースを管理するためのAPIキーの作成方法の詳細については、以下のグループ所有リソースを管理するためのAPIキーの作成セクションを参照してください。
APIキーを作成するには:
Creator Dashboardに移動し、API Keysページにアクセスします。
Create API Keyボタンをクリックします。
APIキーのユニークな名前を入力します。後で目的を思い出すのに役立つ名前を使用してください。例えば、ゲームに場所を公開するためのPLACE_PUBLISHING_KEYなどです。
Access Permissionsセクションで、Select API SystemメニューからAPIを選択します。複数のAPIをキーに追加する必要がある場合は、このステップを繰り返します。
該当する場合は、APIキーでアクセスしたいゲームを選択します。
Restrict by Experienceをオプションで無効にすることができます。無効にすると、APIキーはユーザー所有のすべてのゲームと、適切な権限を持つグループ所有のゲームにアクセスできます。将来的に作成するゲームも含まれます。
Select Operationsドロップダウンから、APIキーで有効にしたい操作を選択します。
APIリファレンスのほとんどの操作には、必要な権限スコープが含まれています。例えば、flush memory store操作には、universe.memory-store:flush権限が必要です。
すべてのスコープとそれをサポートするAPIのリストについては、Scopesを参照してください。
- OPTIONALSecurityセクションで、CIDR notationを使用してキーへのIPアクセスを明示的に制限します。ローカルマシンのIPアドレスを見つけて、Accepted IP Addressesセクションに追加し、アクセスが必要な追加のIPアドレスも追加できます。固定IPがない場合や、APIキーをローカル環境でのみ使用する場合は、Restrict IP addressesトグルをオフのままにして、任意のIPがAPIキーを使用できるようにします。
- OPTIONALリソースに追加の保護を追加するために、キーの有効期限を設定します。
Save & Generate keyボタンをクリックします。
APIキーの文字列を安全な場所にコピーして保存します。公開リポジトリには保存しないでください。
Creator DashboardのAPI ExtensionsページでAPIキーのステータスを確認します。
グループ所有リソースを管理するためのAPIキーの作成
APIキーは、ユーザーアカウントが権限を持つすべてのリソースへのアクセスを許可します。これには、グループ外の個人ゲームも含まれます。個人アカウントのAPIキーをグループの自動化に使用し、そのキーが侵害された場合、他のアクセス可能なリソースも危険にさらされます。
これを防ぐために、別のAPIキーを専用の代替アカウントで作成し、ターゲットグループへのアクセスを厳密に制限することを強く推奨します。自動化目的のために専用の新しいアカウントを作成し、そのタスクに必要な最小限の権限のみを付与してください。
- 自動化用の新しい専用Robloxアカウントを作成します。
- 新しいアカウントをグループに招待します。
- タスクに必要な最小限の権限を持つグループ役割を割り当てます(例:「グループ体験の作成と編集」のみ)。
- 新しいアカウントにログインし、上記のセクションの手順に従ってAPIキーを作成します。
- 生成されたAPIキーをグループリソースの自動化に使用します。
APIキー管理のベストプラクティス
APIキーは機密性の高い資格情報であり、データへの不正アクセスを防ぐために安全に保管する必要があります。以下はAPIキー管理のためのベストプラクティスです。
各アプリケーション用に別々のキーを作成する: 各アプリケーションまたはユースケースごとに別々のAPIキーを作成し、アクセスを分離し、キーが侵害された場合の影響を軽減します。
必要な最小限の権限を選択する: スコープを構成する際には、キーの意図された使用に必要な最小限の権限を選択します。ゲームごとにスコープアクセスを制限できるスコープについては、必要な特定のゲームのみにアクセスを制限します。
IPアドレス制限を使用する: APIキーのアクセスを特定のIPアドレスまたはCIDR範囲に制限し、不明な場所からの不正使用を防ぎます。APIキーをRobloxの場所で使用する際には、キーがRobloxサーバーで使用できるようにするためにIPアドレス制限を使用しないでください。
有効期限を設定する: 短期的な使用ケースの場合、有効期限を設定して、一定期間後にキーを自動的に無効にし、キーが侵害された場合のリスクを軽減します。長期的な使用ケースには有効期限を設定しないことをお勧めします。キーのローテーションプロセスがない限り、キーが期限切れになると自動化が予期せず失敗する可能性があります。
グループリソース管理用に専用の代替アカウントを使用する: グループ所有リソースを管理するためのAPIキーの作成セクションで詳述されているように、グループリソース管理用に最小限の権限を持つ専用アカウントを使用します。
APIキーを安全に保管する: APIキーをソースコード、バージョン管理システム、または公開される可能性のあるスクリプトに直接保存しないでください。キーの保存とアクセス制御には、シークレット管理システムを使用します。Robloxの場所では、Secrets Storeを使用します。
公共のチャネルを通じてAPIキーを共有しない: APIキーを公共のコミュニケーションチャネル、フォーラム、またはソーシャルメディアを通じて共有しないでください。信頼できるチームメンバーとの安全でプライベートなチャネルを通じてのみキーを共有します。キーが侵害された場合の影響を最小限に抑えるために、キーを共有する相手を制限します。
CIDR形式
リソースをさらに保護するために、APIキーを作成する際に、APIキーにアクセスできるIPアドレスを通常のIPアドレスまたはCIDR notationを使用して指定します。 CIDR IPアドレスは通常のIPアドレスのように見えますが、スラッシュと、ネットワークルーティングに重要なビット数を表す小数で終わります:
- 通常: 192.168.0.0
- CIDR: 192.168.0.0/24
前者はIPアドレスで、後者はネットマスクで、バイナリ形式の1のビットをカウントします。前の例では、24は255.255.255.0(24の1)を意味し、192.168.0.0から192.168.0.255までのすべてのIPを許可します。CIDR形式を理解することは、アプリケーションをサーバーで実行する予定がある場合に特に役立ちます。
APIキーのステータス
APIキーは最初はアクティブなステータスですが、そのライフサイクルの中で非アクティブになることがあります。APIキーのステータスが変更された理由と、APIキーをアクティブなステータスに戻す方法については、以下の表を参照してください。
| ステータス | 理由 | 解決策 |
|---|---|---|
| アクティブ | 問題なし。ユーザーはAPI呼び出しを認証するためにキーを使用できます。 | N/A |
| 無効 | ユーザーがEnable Keyトグルを無効にしてキーを無効にしました。 | Enable Keyトグルを有効にします。 |
| 期限切れ | キーの有効期限が切れました。 | 新しい有効期限を設定するか、削除します。 |
| 自動期限切れ | ユーザーが過去60日間キーを使用または更新していません。 | Enable Keyトグルを無効にしてから再度有効にするか、名前、説明、または有効期限など、キーのプロパティのいずれかを更新します。 |
| 取り消し | グループキーのみ。キーを生成したアカウントがグループのキーを管理するための十分なアクセス権を持っていません。 | Regenerate Keyをクリックして新しいシークレットを取得します。 |
| 管理中 | Robloxの管理者がセキュリティ上の理由でキーのシークレットを変更しました。 | Regenerate Keyをクリックして新しいシークレットを取得します。 |
| ユーザー管理中 | キーを生成したアカウントがRobloxによって管理されています。 | アカウントの管理問題を解決します。 |
APIキーの詳細確認
POST api-keys/v1/introspect
APIキーに関する情報を取得します。リクエスターのIPアドレスからキーが使用できるかどうか、キーまたは最後に生成されたユーザーが管理されているかどうかを確認します。
リクエスト
(application/json)
| キー | 値 |
|---|---|
| apiKey | <api_key> |
curl --location --request POST 'https://apis.roblox.com/api-keys/v1/introspect' \
--header 'Content-Type: application/json' \
--data '{
"apiKey": "your-api-key"
}'レスポンス
各スコープオブジェクトに存在する可能性のある4つのリソース識別子があります:
- userId
- groupId
- universeId
- universeDatastore
userIdおよびgroupId識別子は、クリエイターターゲットのスコープにのみ関連します。universeDatastore識別子は、universe-datastoreターゲットのスコープにのみ関連します。リソース識別子は、リソース選択をサポートしないスコープには省略されます。
リソース識別子リスト内のアスタリスク(*)は、そのスコープがそのタイプのすべてのリソースに対して権限を持っていることを示します。
{
"name": "test key",
"authorizedUserId": 234,
"scopes": [
{
"name": "universe-datastores.objects",
"operations": [
"create"
],
"universeDatastores": [
{
"universeId": "123",
"datastoreName": "playerData"
}
]
},
{
"name": "asset",
"operations": [
"write"
],
"groupIds": [
"*"
],
"userIds": [
"*"
]
}
],
"enabled": true,
"expired": false,
"expirationTimeUtc": "2026-01-01T12:00:00.000Z"
}