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.

Hướng dẫn tích hợp OpenAI / AWS EKM

Hướng dẫn từng bước để cấu hình AWS và kích hoạt EKM

Đã cập nhật: 21 days 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 một khóa KMS mới

  1. Đi tới KMS -> Customer managed keys, rồi nhấp vào Create Key.

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

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

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 để truy cập hạn chế vào khóa KMS

  1. Đi tới IAM -> Policies, rồi nhấp vào Create Policy.

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

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

  1. Đi tới IAM -> Roles, rồi nhấp vào Create Role.

  2. Ở bước Select trusted entity, chọn Custom trust policy.

AWS IAM Select trusted entity screen with Custom trust policy selected

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.

{
    "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.

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

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.

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

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

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

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