OpenAI

OpenAI / Azure EKM 統合手順

Azure をプロビジョニングし、EKM をアクティブ化するための詳細な手順

更新日: 2 days ago

概要

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

Azure EKM flow where OpenAI EKM uses Microsoft Entra ID to access your Key Vault and master KEK

手順

1. アカウントで OpenAI 用のサービスプリンシパルを作成します

  1. アクセストークンを取得します

az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID

2. サービスプリンシパルを作成します。以下のリクエストの 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 アクセス用のカスタムロールを作成します

  1. Subscriptions -> Access Control (IAM)」に移動します

  2. + Add 」ドロップダウンメニューで「Add custom role」を選択します

  3. JSON」タブに移動し、「Edit」をクリックして、以下を追加してください。

    1. 任意のロール名 - 選択した名前を覚えておいてください

    2. dataActions 内の次の権限

      1. Microsoft.KeyVault/vaults/keys/encrypt/action

      2. Microsoft.KeyVault/vaults/keys/decrypt/action

      3. Microsoft.KeyVault/vaults/keys/read

        OpenAI / Azure EKM Integration Instructions Custom Role

3. 「Key Vault + Key」を作成します

まだお持ちでない場合は、先ほどカスタムロールを作成した同じサブスクリプション新しい Key Vault を作成します

その Key Vault で、新しいキーを作成します。

  1. Key Vault -> Objects -> Keys」に移動し、次に「Generate/Import」をクリックします

  2. オプションで「Generatre

    」を選択します

    Azure Key Vault Keys page with Generate/Import highlighted to add a key
  3. 暗号化アルゴリズムには「RSA 」を選択します。

  4. 任意の RSA キーサイズを選択できます

  5. 次の形式でキー名を指定してください:<org-xxx>--<any_name>。ここで、org-xxx は https://platform.openai.com/settings/organization/general で確認できる OpenAI の組織 ID です

    Azure Key Vault key generation form with RSA selected and key name org-abcdefg--test-keyvault-key

キーを表示または作成できない場合は、Key Vault Administrator ロールが付与されていることを確認してください。これは、所有者のロールであっても必要です。ロールを割り当てる方法。

  1. Key Vault->Access Control (IAM)」に移動します

  2. 追加 → ロールの割り当て

    」をクリックします

    Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment

4. OpenAI サービスプリンシパル + 新しいカスタム KMS + 新しいキーに対してロール割り当てを作成します

  1. Key Vault -> Objects -> Keys 」に移動し、作成したキーの行をクリックします

  2. 先ほどクリックした キー の「Access control (IAM)」に移動します( Key Vault ではありません)。

  3. 「+ Add」ドロップダウンで、「Add role assignment

    」を選択します

    Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  4. Role」タブで、先ほど作成したカスタムロールの名前を選択します。

    Azure role list filtered for openai- with the openai-azure-kms-role entry
  5. Members」タブ内の操作。

    1. 「+ Select members」をクリックします

    2. 検索バーに 「ekm -」と入力すると、ステップ1で作成した OpenAI サービスプリンシパルが表示されます

      Azure role assignment Members step with EKM - OpenAI Azure Application selected as a member

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"
}'

この記事は役に立ちましたか?