OpenAI

OpenAI/Azure EKM 통합 안내

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

마지막 수정: 9 hours ago

개요

엔터프라이즈 키 관리(EKM)를 통해 OpenAI는 사용자가 제어하는 마스터 키를 사용하여 데이터를 암호화할 수 있습니다. OpenAI가 키 보관소에서 암호화/복호화 작업을 호출하려면 액세스 권한을
부여받아야 합니다. 이 문서에서는 OpenAI가 키 보관소 권한이 있는 역할을 수임할 수 있도록 Azure 계정을
설정하는 방법을 설명합니다.

Azure EKM flow where OpenAI EKM uses Microsoft Entra ID to access your Key Vault and master KEK

단계

1. 계정에서 OpenAI에 대한 서비스 주체 만들기

  1. 액세스 토큰 받기

az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID

2. 서비스 주체 만들기: 아래 요청에서 appId는 OpenAI의 애플리케이션 클라이언트 ID입니다. 그러면 표시 이름이 “EKM - OpenAI Azure”인 주체가 생성됩니다. 이 이름은 이후 단계에서 필요하므로 기억해 두세요.

OpenAI/Azure EKM 통합 안내 - 서비스 주체 만들기

curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'

2. 제한된 KMS 액세스를 위한 사용자 지정 역할 만들기

  1. 구독 -> 액세스 제어(IAM)로 이동합니다.

  2. + 추가 드롭다운에서 사용자 지정 역할 추가를 선택합니다.

  3. JSON 탭으로 가서 편집을 클릭하고 다음 항목을 추가합니다.

    1. 역할 이름(선택한 이름 기억해 두기)

    2. dataActions의 다음 권한

      1. Microsoft.KeyVault/vaults/keys/encrypt/action

      2. Microsoft.KeyVault/vaults/keys/decrypt/action

      3. Microsoft.KeyVault/vaults/keys/read

        OpenAI / Azure EKM Integration Instructions Custom Role

3. 키 보관소 + 키 만들기

키 보관소 아직 없다면 방금 사용자 지정 역할을 만든 동일한 구독에서 새 키 보관소를 만듭니다.

해당 키 보관소에서 새 키를 만듭니다.

  1. 키 보관소 -> 객체 -> 키로 이동하여 생성/가져오기를 클릭합니다.

  2. 옵션에서 생성을 선택합니다.

    Azure Key Vault Keys page with Generate/Import highlighted to add a key
  3. 암호화 알고리즘으로 RSA를 선택합니다.

  4. 원하는 RSA 키 크기를 선택할 수 있습니다.

  5. <org-xxx>--<any_name> 형식으로 키 이름을 입력합니다. 여기서 org-xxx는 OpenAI 조직 ID이며 https://platform.openai.com/settings/organization/general에서 확인할 수 있습니다.

    Azure Key Vault key generation form with RSA selected and key name org-abcdefg--test-keyvault-key

키를 보거나 만들 수 없는 경우 키 보관소 관리자 역할이 있는지 확인하세요. 소유자 역할이 있더라도 확인해야 합니다. 역할을 할당받으려면 다음을 수행합니다.

  1. 키 보관소 -> 액세스 제어(IAM)로 이동합니다.

  2. 추가 -> 역할 할당 추가를 클릭합니다.

    Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment

4. OpenAI 서비스 주체 + 새 사용자 지정 KMS + 새 키에 대한 역할 할당 만들기

  1. 키 보관소 -> 객체 -> 키로 이동하여 생성한 키의 행을 클릭합니다.

  2. 방금 클릭한 (키 보관소 아님)의 액세스 제어(IAM)로 이동합니다.

  3. + 추가 드롭다운에서 역할 할당 추가를 선택합니다.

    Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  4. 역할 탭에서 방금 만든 사용자 지정 역할의 이름을 선택합니다.

    Azure role list filtered for openai- with the openai-azure-kms-role entry
  5. 멤버 탭에서 다음을 수행합니다.

    1. '+ 멤버 선택'을 클릭합니다.

    2. 검색창에 'ekm -'을 입력하면 1단계에서 만든 OpenAI 서비스 주체가 표시됩니다.

      Azure role assignment Members step with EKM - OpenAI Azure Application selected as a member

5. 자체 보안 관행에 맞게 추가 제한 사항 적용하기

위 사항은 OpenAI가 EKM을 설정하는 데 필요한 최소한의 정보입니다. OpenAI가 KMS에서 암호화 및 복호화 작업을 호출할 수 있는 한, 자체 내부 보안 관행에 따라 추가적인 주요 정책이나 제한 사항을 자유롭게 적용할 수 있습니다. 아래에 설명된 OpenAI의 키 등록 엔드포인트를 호출하면 설정 검증이 시작됩니다.

위 단계를 완료한 후

ChatGPT Enterprise

OpenAI 담당자에게 연락하여 다음 사항을 알려줍니다.

  • "tenant_id": "<YOUR_AZURE_TENANT_UUID>"

    • Azure 테넌트 UUID

  • "vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"

    • 사용자가 관리하는 마스터 키가 포함된 Azure 보관소의 URI

  • "key_name": "<YOUR_KEY_NAME>"

    • 사용자가 관리하는 Azure 키 보관소 마스터 키의 이름

    • 키 이름은 <org-xxx>--<any_name> 형식이어야 합니다. 여기서 org-xxx는 OpenAI 조직 ID이며 https://platform.openai.com/settings/organization/general에서 확인할 수 있습니다.

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

API

OpenAI에 외부 키 등록

API 참조 문서인 관리 API의 외부 키 설명된 지침을 따르세요.

  • 먼저 OpenAI 조직 수준에서 외부 키를 등록하면 extkey_xxx 형식의 외부 키 ID가 생성됩니다.

  • 이 단계에서는 입력이 유효한지 확인하고 KMS 인증이 가능한지 검증합니다.

  • 이렇게 해도 아직은 OpenAI 프로젝트에 EKM이 추가되지는 않습니다. 

# 그러면 extkey_xxx형식의 외부 키 ID가 생성됩니다.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
  "type": "azure",
  "name": "<ANY_FRIENDLY_NAME>",
  "tenant_id": "<YOUR_AZURE_TENANT_UUID>",
  "vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
  "key_name": "<YOUR_KEY_NAME>"
}'
  • 그런 다음 외부 키와 연결된 OpenAI 프로젝트를 만듭니다. 그러면 프로젝트에서 EKM이 활성화됩니다.

  • 이 API 호출의 응답 본문에서 프로젝트 ID(proj_xxx)를 확인할 수 있습니다.
    OpenAI/Azure EKM 통합 안내 - 프로젝트 만들기

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

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