OpenAI

OpenAI/AWS EKM 통합 안내

AWS 프로비저닝 및 EKM 활성화 방법 단계별 안내

마지막 수정: 9 hours ago

개요

엔터프라이즈 키 관리(EKM)를 통해 OpenAI는 사용자가 제어하는 마스터 키를 사용하여 데이터를 암호화할 수 있습니다. 이 문서에서는 OpenAI에 KMS에 대한 제한된 권한을 부여하도록 AWS 계정을 설정하는 방법을 설명합니다.

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을 호출합니다. 이 단계에서는 OpenAI의 AWS 주체가 KMS에 액세스하기 위한 제한적 역할을 맡을 수 있도록 인식합니다.

  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

OpenAI가 해당 ChatGPT 조직/워크스페이스에 대해 EKM을 활성화합니다.

API

OpenAI에 외부 키 등록

API 참조 문서인 관리 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"
    }'

이 문서가 도움이 되었나요?