概要
エンタープライズキー管理(EKM)を使用すると、お客様自身の外部キー管理システム(KMS)で管理されるキーを使用して、OpenAI で顧客のコンテンツを暗号化できます。この機能は ChatGPT Enterprise と API の両方で利用可能です。
OpenAI は、AWS KMS、Google Cloud(GCP)、および Azure Key Vault の外部アカウントでの Bring Your Own Key(BYOK)暗号化をサポートしています。
現時点では、EKM の導入は、担当の OpenAI アカウント担当者がいる Enterprise および Edu ワークスペースに限定されています。
OpenAI EKM 暗号化の仕組み
トップレベルフロー
お客様のクラウドプロバイダー向けに、データ暗号化キー(DEK)を生成します。
お客様のクラウド KMS は、クラウド内または外部に保管されたマスター キー暗号化キー(KEK) を管理します。実装はお客様次第です。
お客様のクラウドに DEK の暗号化をリクエストし、暗号化された DEK(eDEK) を取得します。KEK が外部に保管されている場合、クラウドは外部ストレージへの余分なホップを1つだけ経由します。このステップは OpenAI からは見えません。
暗号化
暗号化の際、お客様のデータは DEK で暗号化され、eDEK はファイルのメタデータとして保存されます。

復号化
復号化の際、お客様のクラウド KMS に eDEK を DEK に復号するよう要求し、DEK を使用してデータを復号します。

キーワード
データ暗号化キー (DEK) - データを暗号化するためのキー。
暗号化されたデータ暗号化キー(eDEK) - KMS によって生成された、暗号化された DEK
キー暗号化キー(KEK) - お客様が管理するマスターキーで、DEKをeDEKに暗号化し、eDEKをDEKに復号化します。このキーは常に OpenAI のシステムの外部に保持されます。
実装に関するハイレベル要件
お使いのクラウドプロバイダーで
クラウド KMS (Azure、AWS、または GCP)で新しいキーを作成します
KMS 上で暗号化・復号化の権限を持つカスタムの制限付きポリシーを作成しました。
OpenAI 用に 信頼ポリシー(AWS)、ワークロード ID(GCP)、または サービスプリンシパル(Azure 用)を作成します
KMS にアクセスするための制限付きポリシーを持つロールを OpenAI に割り当てます
OpenAI プラットフォーム内
ChatGPT Enterprise
テスト用のサンドボックス ChatGPT ワークスペースを作成します。
API
OpenAI ダッシュボードで、暗号化が適用される新しいプロジェクトを作成します。
プロバイダー固有の関数
AWS 向けに、OpenAI は以下を行います。
ExternalID を使って AssumeRole を呼び出す
GCP の場合、OpenAI は以下を行います。
OpenAI GCP アカウントから STS エンドポイント を呼び出す
GCP アクセストークンを使用して KMS で暗号化・復号化を呼び出します。
Azure については、OpenAI は以下を行います。
Azure テナントのボールト用のアクセストークンを要求する
そのアクセストークンを使用して、Key Vault で暗号化・復号化を呼び出します。
OpenAI から必要な情報
認証
AWS および GCP 用の OpenAI のフェデレーテッド ID トークンを認識する必要があります。Azure では、アプリ登録に使用する OpenAI のアプリケーション ID を認識する必要があります。
認証パラメーターの概要
| OpenAI AWS プリンシパル | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| OpenAI GCP サービスアカウント ID | 105900137572174660365 |
| OpenAI Azure アプリケーション ID | 20a14814-5ab7-4612-a671-1382b412bf93 |
ご利用のクラウドプロバイダーに応じた実装時に必要な情報
AWS の場合、以下を認識する信頼ポリシーを設定する必要があります。
OpenAI のプリンシパル(口座番号 + 役割)
OpenAI プロジェクト ID である ExternalID
GCP では、以下を認識するワークロード IDを設定する必要があります。
OpenAI のサービスアカウント ID
OpenAI プロジェクト ID であるオーディエンス
Azure では、OpenAI のアプリ登録用に Azure テナントで サービスプリンシパル を作成する必要があります
OpenAI の アプリケーションクライアント ID: 20a14814-5ab7-4612-a671-1382b412bf9 用に1つ作成してください。
これは、https://graph.microsoft.com/v1.0/servicePrincipals のエンドポイントに POST することで実行できます。
権限
OpenAI の ID がお客様の KMS への限定的なアクセスを取得できるようにするポリシーを作成する必要があります。
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
その他
Azure では、キーの種類(キー暗号化アルゴリズム)として、EC ではなく RSA を選択します。
OpenAI が求める情報
KMS を OpenAI に登録するには、このドキュメントの指示に従ってください。以下に、提供が必要なパラメータの概要を示します。
認証関連
AWS
IAM Role ARN - OpenAI が引き受けるロール(例: arn:aws:iam::123456789:role/role-name)
ExternalID - OpenAI 組織 ID
GCP
ワークロードアイデンティティプロジェクト番号(例: 123456789)
ワークロードアイデンティティプール ID
ワークロードアイデンティティプロバイダー ID
対象者: お客様の OpenAI 組織 ID
Azure
テナント ID
| AWS | GCP | Azure | |
| 認証関連 | テナント ID | ||
| KMS 関連 | KMS ARN - (例: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | KMS プロジェクト ID(例: adjective-noun-12345)KMS キーリング名KMS キー名KMS キーのロケーション(例: us-east1) | Vault URI (例: https://your-vault-name.vault.azure.net/)キー名 |
KMS を OpenAI に登録したら、ドキュメントの手順に従って、API プロジェクトで EKM 構成を有効化してください。テスト用に新しい OpenAI API プロジェクトを作成します。
プロバイダー固有の実装ガイド
手順に沿ったガイドについては、以下の該当リンクをご覧ください。これらは OpenAI との統合要件に焦点を当てたものであり、お客様の環境全体に対する包括的なガイドとして意図されたものではないことにご注意ください。
EKM が有効な場合にサポートされていない機能
初回リリースでは、EKM を有効にすると、次の機能は利用できません:
同期対応アプリ
一般提供されていない機能(例:ベータ版/アルファ版段階の機能)
