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 khóa KMS mới
Vào KMS > Khóa do khách hàng quản lý, rồi chọn Tạo khóa.
Chọn một thuật toán mã hóa đối xứng.
Sau khi tạo khóa, hãy ghi lại ARN của khóa đó. Các định dạng được hỗ trợ 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 để giới hạn quyền truy cập khóa KMS
Vào IAM > Chính sách, rồi chọn Tạo chính sách.
Ở bước Chỉ định quyền, chọn JSON và nhập nội dung sau để thêm các thao tác truy cập KMS vào chính sách. Hãy nhớ 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 vai trò IAM để OpenAI đảm nhận và gắn chính sách giới hạn quyền truy cập KMS của bạn vào vai trò đó
OpenAI sẽ gọi AssumeRole từ một tài khoản AWS thuộc sở hữu của OpenAI. Bước này cho phép chủ thể AWS của OpenAI đảm nhận vai trò có quyền hạn giới hạn để truy cập KMS của bạn.
Vào IAM > Vai trò, rồi chọn Tạo vai trò.
Ở bước Chọn thực thể đáng tin cậy, chọn Chính sách tin cậy tùy chỉnh.

Tiếp theo, nhập nội dung sau vào Chính sách tin cậy tùy chỉnh để cho phép chủ thể AWS của OpenAI truy cập.
Chủ thể ở đây là chủ thể AWS của OpenAI:
arn:aws:iam::790389265272:role/EnterpriseKeyManagement.Chỉ định ExternalId mà OpenAI cầ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) gắn với không gian làm việc của bạn, có trong phần cài đặt tổ chức.
Đối với API, bạn có thể dùng một ID dự án API cụ thể để kiểm soát quyền truy cập chi tiết 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 Thêm quyền, tìm tên chính sách IAM mà bạn đã tạo ở bước trước. Đánh dấu ô chọn bên cạnh tên chính sách, rồi chọn Tiếp theo.

Cuối cùng, trong phần Đặt tên, xem lại và tạo, đặt tên tùy ý cho vai trò.
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 khảo API này: Khóa bên ngoài trong API quản lý.
Trước tiên, đăng ký khóa bên ngoài ở cấp tổ chức OpenAI để tạo ID khóa bên ngoài.
Ở bước này, chúng tôi sẽ kiểm tra xem dữ liệu bạn nhập có hợp lệ không và liệu chúng tôi có thể xác thực với KMS của bạn hay không.
Bướ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": "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>"
}'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": "Some Project",
"external_key_id": "extkey_xxxx"
}'