Tổng quan
Enterprise Key Management (EKM) cho phép OpenAI mã hóa dữ liệu bằng khóa chính do bạn kiểm soát. Tài liệu này trình bày cách thiết lập tài khoản AWS của bạn để cấp cho OpenAI các quyền hạn chế trên KMS của bạn.

Các bước
1. Tạo một khóa KMS mới
Đi tới KMS -> Customer managed keys, rồi nhấp vào Create Key.
Chọn một thuật toán mã hóa đối xứng.
Sau khi khóa của bạn được tạo, hãy ghi lại ARN của khóa đó. Các định dạng được hỗ trợ bao gồm
arn:aws:kms:<region>:<account_number>:key/<uuid>,...:key/mrk-*hoặc...:alias/<alias_name>.

2. Tạo chính sách tùy chỉnh để truy cập hạn chế vào khóa KMS
Đi tới IAM -> Policies, rồi nhấp vào Create Policy.
Ở bước Specify permissions, chọn JSON và nhập nội dung sau để cấp cho chính sách các hành động truy cập KMS. Hãy đảm bảo bạn thay YOUR_KMS_ARN bằng ARN của khóa bạn đã tạo.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}3. Tạo một IAM Role để OpenAI đảm nhận và gán vai trò đó cho chính sách có quyền truy cập hạn chế vào KMS của bạn
OpenAI sẽ gọi AssumeRole từ một tài khoản AWS do OpenAI sở hữu. Bước này cho phép principal AWS của OpenAI đảm nhận vai trò bị giới hạn để truy cập KMS của bạn.
Đi tới IAM -> Roles, rồi nhấp vào Create Role.
Ở bước Select trusted entity, chọn Custom trust policy.

Tiếp theo, nhập nội dung sau vào Custom trust policy để cho phép truy cập vào principal AWS của OpenAI.
Principal là principal AWS của OpenAI:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Chỉ định ExternalId mà OpenAI nên truyền trong quá trình
AssumeRole.Đối với ChatGPT hoặc API, hãy dùng ID tổ chức (org-xxx) liên kết với không gian làm việc của bạn: https://platform.api.openai.org/settings/organization/general.
Đối với API, bạn có thể dùng một ID dự án API cụ thể để có độ chi tiết cao hơn.
{
"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>,
]
}
}
}
]
}Sau đó, ở bước Add permissions, tìm kiếm tên chính sách IAM mà bạn đã tạo ở bước trước. Nhấp vào hộp kiểm bên cạnh tên chính sách, rồi nhấp vào Next.

Cuối cùng, trong phần Name, review, and create, chọn bất kỳ tên vai trò nào.
4. Áp dụng mọi hạn chế bổ sung phù hợp với các phương thức bảo mật của riêng bạn
Trên đây là thông tin tối thiểu bắt buộc mà OpenAI cần để thiết lập EKM. Bạn có thể tự do áp dụng các chính sách khóa hoặc hạn chế bổ sung phù hợp với các phương thức bảo mật nội bộ của riêng bạn, miễn là OpenAI có thể gọi các thao tác mã hóa và giải mã trên KMS của bạn. Khi bạn gọi điểm cuối đăng ký khóa với OpenAI được mô tả bên dưới, chúng tôi sẽ xác thực thiết lập của bạn.
Sau khi hoàn tất các bước trên
ChatGPT Enterprise
Vui lòng liên hệ với người phụ trách OpenAI của bạn và chia sẻ thông tin sau:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>"Role ARN mà OpenAI sẽ đảm nhận trong đám mây của bạn.
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"ARN của Key Management System cho khóa chính mà bạn quản lý.
Chúng tôi sẽ bật EKM cho tổ chức/không gian làm việc ChatGPT của bạn.
API
Đăng ký khóa bên ngoài của bạn với OpenAI
Làm theo hướng dẫn trong tài liệu tham chiếu API này: Khóa bên ngoài trong Management API.
Trước tiên, hãy đăng ký khóa bên ngoài của bạn ở cấp tổ chức OpenAI; thao tác này sẽ tạo một ID khóa bên ngoài.
Ở bước này, chúng tôi sẽ xác thực rằng thông tin bạn nhập là hợp lệ và chúng tôi có thể xác thực với KMS của bạn.
Thao tác này chưa thêm EKM vào dự án OpenAI của bạn.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "aws",
"name": "Cấu hình AWS EKM",
"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": <id tổ chức hoặc id dự án của bạn>
}'Sau đó, tạo một dự án OpenAI liên kết với khóa bên ngoài. Sau bước này, EKM được kích hoạt trên dự án của bạn. Phần nội dung phản hồi của lệnh gọi API này sẽ cung cấp cho bạn ID dự án (proj_xxx).
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Một dự án",
"external_key_id": "extkey_xxxx"
}'