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

단계
1. 새 KMS 키 만들기
KMS -> 고객 관리 키로 이동한 후 키 만들기를 클릭합니다.
대칭 암호화 알고리즘을 선택합니다.
키를 생성한 후 ARN을 기록해 둡니다. 지원되는 형식에는 arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, or ...:alias/<alias_name>이 포함됩니다.

2. KMS 키에 제한적으로 액세스할 수 있는 맞춤형 정책 생성하기
IAM -> 정책으로 이동한 후 정책 만들기를 클릭합니다.
권한 지정 단계에서 JSON을 선택하고 다음 내용을 입력해 정책에 KMS 액세스 작업 권한을 부여합니다. 반드시 YOUR_KMS_ARN을 생성한 키의 ARN으로 교체하세요.

{
"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에 액세스하기 위한 제한적 역할을 맡을 수 있도록 인식합니다.
IAM -> 역할로 이동한 후 역할 만들기를 클릭합니다.
신뢰할 수 있는 엔터티 선택 단계에서 사용자 지정 신뢰 정책을 선택합니다.

OpenAI의 AWS 주체에 대한 액세스를 허용하려면 사용자 지정 신뢰 정책에 다음 내용을 입력하세요.
주체는 OpenAI의 AWS 주체입니다. arn:aws:iam::790389265272:role/EnterpriseKeyManagement
AssumeRole 프로세스 중 OpenAI가 전달해야 하는 Externald를 지정합니다.
ChatGPT 또는 API의 경우 워크스페이스와 연결된 조직 ID(org-xxx)를 사용할 수 있습니다. https://platform.api.openai.org/settings/organization/general
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>,
]
}
}
}
]
}
권한 추가 단계에서는 이전 단계에서 생성한 IAM 정책의 정책 이름을 검색합니다. 정책 이름 옆의 체크박스를 선택한 후 다음을 클릭합니다.

이름, 검토 및 만들기 섹션에서 원하는 역할 이름을 선택합니다.
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의 외부 키 설명된 지침을 따르세요.
먼저 OpenAI 조직 수준에서 외부 키를 등록합니다. 그러면 외부 키 ID가 생성됩니다.
이 단계에서는 입력이 유효한지 확인하고 KMS 인증이 가능한지 검증합니다.
이렇게 해도 아직은 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>
}'그런 다음 외부 키와 연결된 OpenAI 프로젝트를 만듭니다. 그러면 프로젝트에서 EKM이 활성화됩니다.
이 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"
}'
