OpenAI
Trang này được dịch bằng máy học. Xem bài viết gốc bằng tiếng Anh.

Cấu hình EKM với OpenAI và AWS

Tìm hiểu cách cấp phát tài nguyên AWS và kích hoạt tính năng Quản lý khóa doanh nghiệp (EKM).

Đã cập nhật: 1 hour ago

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.

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

Các bước

1. Tạo khóa KMS mới

  1. Vào KMS > Khóa do khách hàng quản lý, rồi chọn Tạo khóa.

  2. Chọn một thuật toán mã hóa đối xứng.

  3. 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>.

AWS KMS customer managed key details page with key ID and ARN for test-kms

2. Tạo chính sách tùy chỉnh để giới hạn quyền truy cập khóa KMS

  1. Vào IAM > Chính sách, rồi chọn Tạo chính sách.

  2. Ở 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.

AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
{
"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.

  1. Vào IAM > Vai trò, rồi chọn Tạo vai trò.

  2. Ở bước Chọn thực thể đáng tin cậy, chọn Chính sách tin cậy tùy chỉnh.

AWS IAM Select trusted entity screen with Custom trust policy selected

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.

AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected

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ý.

  1. 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.

  2. Ở 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.

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

Bài viết này có hữu ích không?