キー権限の追加
OCI生成AI APIキーを使用するには、テナンシ・レベルまたはコンパートメント・レベルのIAMポリシーを介して権限を付与します。
これらのポリシーは、any-userをサブジェクトとして使用して、テナンシ内の認証されたプリンシパル(ユーザー、インスタンス・プリンシパルおよびリソース・プリンシパルを含む)へのアクセスを許可しますが、WHERE句は、プリンシパル・タイプがgenerativeaiapikey (APIキーに一致)であるリクエストに制限します。このポリシーにより、生成AIサービスは、より広範なアクセスなしでキーを使用してAPIコールを認証および処理できます。
より詳細な制御を行うには、any-userをgroup <group-name>に置き換えて、ポリシーを特定のグループのメンバーに制限します(たとえば、そのグループのユーザーのみがキーでAPIを呼び出すことを許可します)。
スコープ(コンパートメントまたはテナンシ)、粒度(特定のキーと比較した任意のキー)、モデル制限または操作タイプ(チャットのみなど)別にポリシーをカスタマイズします。わかりやすくするためにポリシー・ビルダー・ツールを使用します。コンパートメント内のすべてのキーまたは特定のモデルのすべてのキーを認可する場合は、キーを生成する前にポリシーを作成し、特定のキーに制限されている場合は、最初にキーを作成します(OCIDを取得するため)。
広範な権限: 任意のAPIキーの認可
OCIDを必要としない場合、このオプションは、キーの作成前または作成後の一般的なアクセスに最適です(キーを使用する前にこのポリシーを追加してください)。
- 特定のコンパートメント内
-
allow any-user to use generative-ai-family in compartment <compartment-name> where ALL {request.principal.type='generativeaiapikey'} - テナンシ全体
-
allow any-user to use generative-ai-family in compartment <compartment-name> where ALL {request.principal.type='generativeaiapikey', target.model.id in('<model-1>', 'model-2') }
特定の権限: 単一のAPIキーの認可
最初にキーを生成し、そのOCID (ocid1.generativeaiapikey.<region-realm>.<region-name>で始まる)を取得してから、ポリシーを適用します。OCIDの検索については、APIキーの詳細の取得を参照してください。
- 特定のコンパートメント内
-
allow any-user to use generative-ai-family in compartment <compartment-name> where ALL {request.principal.type='generativeaiapikey', request.principal.id='<your-api-key-OCID>'}
- テナンシ全体
-
allow any-user to use generative-ai-family in tenancy where ALL {request.principal.type='generativeaiapikey', request.principal.id='<your-api-key-OCID>'}
制限された権限: モデルまたは操作への制限
セキュリティを強化するには、特定のモデルまたはエンドポイントへのアクセスを絞り込みます(たとえば、xAI Grok 4の場合はxai.grok-4のように、モデル・カードまたはエンドポイントIDでモデルIDを検索します)。サポートされているモデルを参照してください)。フル・アクセスの場合はgenerative-ai-familyを使用し、チャット・エンドポイントのみに制限する場合はgenerative-ai-chatを使用します(埋込み、再ランク、モデル更新またはAIクラスタを除く)。「生成AIへのアクセス」を参照してください。
- 特定のモデルまたはエンドポイントのコンパートメント内の任意のキー(完全な読取りおよび更新アクセス)
-
allow any-user to use generative-ai-family in compartment <compartment-name> where ALL {request.principal.type='generativeaiapikey', target.model.id in('<model-1>', 'model-2') } - 特定のモデルまたはエンドポイントのコンパートメント内の任意のキー(チャットのみ):
-
allow any-user to use generative-ai-chat in compartment <compartment-name> where ALL {request.principal.type='generativeaiapikey', target.model.id in('<model-1>', 'model-2') }
ヘルプ
IAMポリシーの構文およびベスト・プラクティスは、ポリシー・ビルダーを使用したポリシー・ステートメントの記述を参照してください。