OpenAI

OpenAI 엔터프라이즈 키 관리(EKM) 개요

EKM의 작동 방식, 지원되는 공급자, 시작 방법을 알아보세요.

마지막 수정: 15 days ago

개요

엔터프라이즈 키 관리(EKM)를 사용하면 자체 외부 키 관리 시스템(KMS)에서 관리하는 키로 OpenAI의 고객 콘텐츠를 암호화할 수 있습니다. 이 기능은 ChatGPT Enterprise와 API 모두에서 사용할 수 있습니다.

OpenAI는 AWS KMS, Google Cloud(GCP), Azure Key Vault의 외부 계정을 통한 BYOK(Bring Your Own Key) 암호화를 지원합니다.

현재 EKM 구현은 OpenAI 계정 담당자가 지정된 Enterprise 및 Edu 워크스페이스로 제한됩니다.

OpenAI EKM 암호화 작동 방식

고수준 흐름

  1. 클라우드 공급자용 데이터 암호화 키(DEK)를 생성합니다.

  2. 클라우드 KMS는 클라우드 내부 또는 외부에 저장된 마스터 키 암호화 키(KEK)를 관리합니다. 구현 방식은 사용자가 결정합니다.

  3. 클라우드에 DEK 암호화를 요청해 암호화된 DEK(eDEK)를 가져옵니다. KEK가 외부에 저장된 경우, 클라우드는 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. OpenAI에 제한된 정책으로 KMS에 액세스할 수 있는 역할을 할당합니다.

OpenAI 플랫폼에서

ChatGPT Enterprise

테스트용 샌드박스 ChatGPT 워크스페이스 생성

API

OpenAI 대시보드에서 암호화를 적용할 새 프로젝트를 만듭ㄴ디ㅏ.

공급자별 기능

AWS의 경우 OpenAI는 다음을 수행합니다.

  • ExternalID를 사용해 AssumeRole 호출

GCP의 경우 OpenAI는 다음을 수행합니다.

  • OpenAI GCP 계정에서 STS 엔드포인트 호출

  • GCP 액세스 토큰을 사용해 KMS에서 encrypt/decrypt 호출

Azure의 경우 OpenAI는 다음을 수행합니다.

  • Azure 테넌트의 보관소에 대한 액세스 토큰 요청

  • 해당 액세스 토큰을 사용해 키 보관소에서 encrypt/decrypt 호출

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)에 대해 서비스 주체를 생성합니다.

    • https://graph.microsoft.com/v1.0/servicePrincipals 엔드포인트에 게시해 이 작업을 수행할 수 있습니다.

권한 부여

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 역할 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이 활성화된 경우 다음 기능을 사용할 수 없습니다.

  • 동기화 기능이 있는 앱

  • 일반 제공되지 않는 기능(즉, 아직 알파/베타 단계에 있는 모든 기능)

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