OpenAI

OpenAI / AWS EKM 連携手順

AWS をプロビジョニングし、EKM を有効化する詳細な手順

更新日: 2 days ago

概要

エンタープライズキー管理(EKM)を使用すると、お客様が管理するマスターキーを使用して、OpenAI がデータを暗号化できます。このドキュメントでは、お客様の AWS アカウントを設定し、OpenAI に対して KMS の限定的な権限を付与する方法について説明します。

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

手順

1. 新規 KMS キーを作成する

  1. KMS -> 顧客管理キーと移動し、次に「キーの作成」をクリックします

  2. 対称暗号化アルゴリズムを選択します

  3. キーを作成したら、その ARN を控えておいてください。サポートされる形式には arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, or ...:alias/<alias_name>

    が含まれます。

    AWS KMS customer managed key details page with key ID and ARN for test-kms

2. KMS キーへのアクセスを制限するためのカスタムポリシーを作成する

  1. IAM -> ポリシー と移動し、次に「ポリシーの作成」をクリックします

  2. 「許可の指定」ステップで JSON を選択し、ポリシーに KMS へのアクセスアクションを付与するために、以下の内容を入力します。YOUR_KMS_ARN を、作成したキーの ARN に必ず置き換えてください。

    AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AllowEncryptDecrypt",
                "Effect": "Allow",
                "Action": [

                    "kms:Decrypt",
                    "kms:Encrypt"

                ],
                "Resource": <YOUR_KMS_ARN>
            }
        ]
    }

3. OpenAI が引き受ける IAM ロール を作成し、KMS へのアクセスを制限したポリシーに割り当てます。

OpenAI は、OpenAI が所有する AWS アカウントから AssumeRole を呼び出します。このステップでは、お客様の KMS にアクセスするために OpenAI の AWS プリンシパルが制限付きロールを引き受けることができることを認識します。

  1. IAM -> ロール と進み、次に「ロールを作成」をクリックします。

  2. 「信頼できるエンティティを選択」のステップで、「カスタム信頼ポリシー」 を選択します

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. OpenAI の AWS プリンシパルへのアクセスを許可するために、以下をカスタム信頼ポリシーに入力します。

    1. このプリンシパルは OpenAI の AWS プリンシパルです - arn:aws:iam::790389265272:role/EnterpriseKeyManagement

    2. AssumeRole プロセス中に OpenAI が渡す Externald を指定してください。

      1. ChatGPT または API では、ワークスペースに関連付けられた 組織 ID(org-xxx) を使用できます - https://platform.api.openai.org/settings/organization/general

      2. API では、より細かく設定するために特定の API プロジェクト ID を指定できます

        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
                    },
                    "Action": "sts:AssumeRole",
                    "Condition": {
                        "StringEquals": {
                            "sts:ExternalId": [
                                 <YOUR_OPENAI_ORGANIZATION_ID>,
                             ]
                        }
                    }
                }
            ]
        }
  4. 「許可の追加」ステップで、前のステップで作成した IAM ポリシーのポリシー名を検索します。ポリシー名の横にあるチェックボックスをクリックし、次に「次へ」をクリックします。

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. 「名前、確認、および作成」セクションで、いずれかのロール名を選択します。

4. お客様独自のセキュリティ慣行に沿って、追加の制限を適用します。

上記は、OpenAI が EKM を設定するために必要な必要な最小限の情報です。OpenAI がお客様の KMS で暗号化および復号化操作を呼び出せる限り、お客様独自の社内セキュリティ慣行に沿って、追加のキーポリシーや制限を自由に適用できます。以下で説明する OpenAI のキー登録エンドポイントを呼び出すと、設定を検証します。

上記の手順を完了した後

ChatGPT Enterprise

OpenAI の担当者にご連絡いただき、以下の内容を共有してください。

  • "role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",

    • OpenAI がクラウド環境で引き受ける Role ARN

  • "kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"

    • お客様が管理するマスターキーのキー管理システム ARN

お客様の ChatGPT 組織またはワークスペース用に EKM を有効化します。

API

OpenAI に外部キーを登録する

この API リファレンス Management API の外部キーに記載された手順に従ってください

  1. まず、OpenAI の組織レベルで外部キーを登録します。すると、外部キー ID が生成されます。

  2. このステップでは、入力が有効であること、および KMS に対して認証できることを検証します。

  3. まだ、これによって OpenAI プロジェクトに EKM が追加されることはありません。

    curl -X POST \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer $TOKEN" \

    "https://api.openai.com/v1/organization/external_keys"\
    -d '{
      "type": "aws",
      "name": "AWS EKM Config",
      "role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
      "kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>",
      "external_id": <your org id or project id>
    }'
  4. 次に、外部キーに関連付けられた OpenAI プロジェクトを作成します。この後、プロジェクトで EKM が有効になります。

  5. この API 呼び出しのレスポンスのボディ(本文)により、プロジェクト ID (proj_xxx)

    が与えられます

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

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