OpenAI

OpenAI エンタープライズキー管理(EKM)の概要

EKM の仕組み、サポートされているプロバイダー、および利用開始方法について

更新日: 16 days ago

概要

エンタープライズキー管理(EKM)を使用すると、お客様自身の外部キー管理システム(KMS)で管理されるキーを使用して、OpenAI で顧客のコンテンツを暗号化できます。この機能は ChatGPT Enterprise と API の両方で利用可能です。

OpenAI は、AWS KMSGoogle CloudGCP)、および Azure Key Vault の外部アカウントでの Bring Your Own Key(BYOK)暗号化をサポートしています。

現時点では、EKM の導入は、担当の OpenAI アカウント担当者がいる Enterprise および Edu ワークスペースに限定されています。

OpenAI EKM 暗号化の仕組み

トップレベルフロー

  1. お客様のクラウドプロバイダー向けに、データ暗号化キー(DEK)を生成します。

  2. お客様のクラウド KMS は、クラウド内または外部に保管されたマスター キー暗号化キー(KEK) を管理します。実装はお客様次第です。

  3. お客様のクラウドに DEK の暗号化をリクエストし、暗号化された DEK(eDEK) を取得します。KEK が外部に保管されている場合、クラウドは外部ストレージへの余分なホップを1つだけ経由します。このステップは OpenAI からは見えません。

暗号化

暗号化の際、お客様のデータは DEK で暗号化され、eDEK はファイルのメタデータとして保存されます。

EKM encryption flow where OpenAI requests a DEK from your KMS, encrypts data, and stores encrypted data with eDEK

復号化

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

EKM decryption flow where OpenAI requests a DEK from your KMS to decrypt encrypted data for download

キーワード

  • データ暗号化キー (DEK) - データを暗号化するためのキー。

  • 暗号化されたデータ暗号化キー(eDEK) - KMS によって生成された、暗号化された DEK

  • キー暗号化キー(KEK) - お客様が管理するマスターキーで、DEKをeDEKに暗号化し、eDEKをDEKに復号化します。このキーは常に OpenAI のシステムの外部に保持されます。

実装に関するハイレベル要件

お使いのクラウドプロバイダーで

  1. クラウド KMS (Azure、AWS、または GCP)で新しいキーを作成します

  2. KMS 上で暗号化・復号化の権限を持つカスタムの制限付きポリシーを作成しました。

  3. OpenAI 用に 信頼ポリシー(AWS)、ワークロード ID(GCP)、または サービスプリンシパル(Azure 用)を作成します

  4. 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 サービスアカウント ID105900137572174660365
OpenAI Azure アプリケーション ID20a14814-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 への限定的なアクセスを取得できるようにするポリシーを作成する必要があります。

AWSGCPAzure
kms:Decryptkms:Encryptcloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncryptMicrosoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action

その他

Azure では、キーの種類(キー暗号化アルゴリズム)として、EC ではなく RSA を選択します。

OpenAI が求める情報

KMS を OpenAI に登録するには、このドキュメントの指示に従ってください。以下に、提供が必要なパラメータの概要を示します。

  1. 認証関連

    1. AWS

      1. IAM Role ARN - OpenAI が引き受けるロール(例: arn:aws:iam::123456789:role/role-name)

      2. ExternalID - OpenAI 組織 ID

    2. GCP

      1. ワークロードアイデンティティプロジェクト番号(例: 123456789)

      2. ワークロードアイデンティティプール ID

      3. ワークロードアイデンティティプロバイダー ID

      4. 対象者: お客様の OpenAI 組織 ID

    3. Azure

      1. テナント ID

AWSGCPAzure
認証関連テナント 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 を有効にすると、次の機能は利用できません:

  • 同期対応アプリ

  • 一般提供されていない機能(例:ベータ版/アルファ版段階の機能)

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