概要
エンタープライズキー管理(EKM)を使用すると、お客様が管理するマスターキーを使用して、OpenAI がデータを暗号化できます。OpenAI が Key Vault で暗号化/復号の操作を実行できるようにするには、
アクセス権を付与していただく必要があります。このドキュメントでは、OpenAI が Key Vault のアクセス許可を持つロールを引き受けられるように、
Azure アカウントを設定する方法について説明します。

手順
1. アカウントで OpenAI 用のサービスプリンシパルを作成します
アクセストークンを取得します
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID2. サービスプリンシパルを作成します。以下のリクエストの appId は、OpenAI のアプリケーションクライアント ID です。これにより、表示名が「EKM - OpenAI Azure」のプリンシパルが作成されます。後の手順で使用するため、覚えておいてください。
OpenAI / Azure EKM 連携手順 - サービスプリンシパルを作成
curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'2. 制限付き KMS アクセス用のカスタムロールを作成します
「Subscriptions -> Access Control (IAM)」に移動します
「+ Add 」ドロップダウンメニューで「Add custom role」を選択します
「JSON」タブに移動し、「Edit」をクリックして、以下を追加してください。
任意のロール名 - 選択した名前を覚えておいてください
dataActions 内の次の権限
Microsoft.KeyVault/vaults/keys/encrypt/action
Microsoft.KeyVault/vaults/keys/decrypt/action
Microsoft.KeyVault/vaults/keys/read

3. 「Key Vault + Key」を作成します
まだお持ちでない場合は、先ほどカスタムロールを作成した同じサブスクリプションに新しい Key Vault を作成します
その Key Vault で、新しいキーを作成します。
「Key Vault -> Objects -> Keys」に移動し、次に「Generate/Import」をクリックします
オプションで「Generatre
」を選択します
暗号化アルゴリズムには「RSA 」を選択します。
任意の RSA キーサイズを選択できます
次の形式でキー名を指定してください:<org-xxx>--<any_name>。ここで、org-xxx は https://platform.openai.com/settings/organization/general で確認できる OpenAI の組織 ID です

キーを表示または作成できない場合は、Key Vault Administrator ロールが付与されていることを確認してください。これは、所有者のロールであっても必要です。ロールを割り当てる方法。
「Key Vault->Access Control (IAM)」に移動します
「追加 → ロールの割り当て
」をクリックします
4. OpenAI サービスプリンシパル + 新しいカスタム KMS + 新しいキーに対してロール割り当てを作成します
「Key Vault -> Objects -> Keys 」に移動し、作成したキーの行をクリックします
先ほどクリックした キー の「Access control (IAM)」に移動します( Key Vault ではありません)。
「+ Add」ドロップダウンで、「Add role assignment
」を選択します
「Role」タブで、先ほど作成したカスタムロールの名前を選択します。

「Members」タブ内の操作。
「+ Select members」をクリックします
検索バーに 「ekm -」と入力すると、ステップ1で作成した OpenAI サービスプリンシパルが表示されます

5. お客様独自のセキュリティ慣行に沿って、追加の制限を適用します
上記は、OpenAI が EKM を設定するために必要な最小限の情報です。OpenAI がお客様の KMS で encrypt および decrypt 操作を呼び出せる限り、お客様独自の社内セキュリティ慣行に沿って、追加のキーポリシーや制限を自由に適用できます。以下で説明する OpenAI のキー登録エンドポイントを呼び出すと、設定を検証します。
上記の手順を完了した後の推奨事項
ChatGPT Enterprise
OpenAI の担当者にご連絡いただき、以下の内容をご共有ください。
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
Azureテナントの UUID
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
管理しているマスターキーを含む Azure ボールトの URI
"key_name": "<YOUR_KEY_NAME>"
お客様が管理する Azure Key Vault のマスターキーの名前
キー名は、<org-xxx>--<any_name> の形式である必要があります。ここで、org-xxx は OpenAI 組織 ID であり、https://platform.openai.com/settings/organization/general で確認できます。
お客様の ChatGPT 組織/ワークスペースに EKM を有効化します。
API
OpenAI に外部キーを登録します
この API リファレンス「Management API の外部キー」の手順に従います
まず、OpenAI 組織レベルで外部キーを登録してください。これにより、extkey_xxx の形式の外部キー ID が生成されます
このステップでは、入力が有効であること、および KMS に対して認証できることを検証します。
これによって、まだ OpenAI プロジェクトに EKM が追加されることはありません。
# これにより、次の形式の外部キーIDが生成されます: extkey_xxx
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "<ANY_FRIENDLY_NAME>",
"tenant_id": "<YOUR_AZURE_TENANT_UUID>",
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
"key_name": "<YOUR_KEY_NAME>"
}'次に、外部キーに関連付けられた OpenAI プロジェクトを作成します。この後、プロジェクトで EKM が有効になります。
この API 呼び出しのレスポンス本文には、プロジェクト ID「(proj_xxx)
」が含まれます。OpenAI / Azure EKM 統合手順 - プロジェクトの作成
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Some Project",
"external_key_id": "extkey_xxxx"
}'