Tổng quan
Quản lý khóa doanh nghiệp (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 GCP của bạn để cấp cho OpenAI quyền hạn chế trên KMS của bạn.

Các bước
1. Tạo danh tính liên kết cho OpenAI
OpenAI sẽ phát hành một token danh tính từ một tài khoản GCP thuộc sở hữu của OpenAI trông tương tự như sau.
azp và sub là ID tài khoản dịch vụ của OpenAI trong GCP
aud là ID tổ chức OpenAI của bạn. Bạn cũng có thể chọn một audience khác, chẳng hạn như ID dự án OpenAI của bạn - xem hướng dẫn bên dưới
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Bước này nhận diện các claim do token danh tính đó đưa ra và cho phép GCP STS của bạn phát hành token truy cập khi token danh tính đó được cung cấp.
Chuyển đến IAM & Quản trị -> Liên kết danh tính workload và nhấp vào Tạo nhóm

Ở bước Tạo nhóm danh tính, nhập bất kỳ nội dung nào cho tên nhóm.
Ở bước Thêm nhà cung cấp vào nhóm:
Trong Chọn nhà cung cấp, chọn OpenID Connect (OIDC)
Nhập bất kỳ nội dung nào cho tên nhà cung cấp.
Trong phần Nhà phát hành (URL), nhập https://accounts.google.com
Trong phần Đối tượng nhận
Chọn Đối tượng được phép
Nhập đối tượng nhận mà OpenAI nên chỉ định khi chúng tôi chuyển token cho bạn.
Đối với ChatGPT hoặc API: Bạn có thể nhập ID tổ chức OpenAI API (org-xxx)
Đối với API: bạn có thể nhập một ID dự án API cụ thể để chi tiết hơn.

Trong phần Ánh xạ thuộc tính
đối với google.subject, nhập assertion.sub

Trong phần Điều kiện thuộc tính
Bây giờ, bạn sẽ thấy nhóm danh tính workload và nhà cung cấp danh tính workload của mình được liệt kê trên trang https://console.cloud.google.com/iam-admin/workload-identity-pools
ID nhóm danh tính workload

ID nhà cung cấp danh tính workload

2. Đảm bảo KMS đã được bật
Truy cập https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview để bật KMS. Bạn không bắt buộc phải tạo KMS trong cùng dự án GCP nơi bạn đã nhận diện danh tính liên kết của OpenAI; tuy nhiên, nếu các dự án khác nhau, sản phẩm KMS ít nhất phải được bật trong cả hai dự án.
3. Tạo khóa KMS mới
Chuyển đến Bảo mật -> Bảo vệ dữ liệu > Quản lý khóa
Trong thẻ Tổng quan, nhấp vào Tạo vòng khóa
Chọn bất kỳ tên nào cho vòng khóa của bạn
Đối với Mục đích và thuật toán, chọn Mã hóa/giải mã đối xứng

Sau khi bạn đã tạo vòng khóa, vòng khóa đó sẽ được liệt kê trong thẻ Vòng khóa. Nhấp vào vòng khóa.
Trong chi tiết vòng khóa, nhấp vào Tạo khóa
Chọn bất kỳ tên nào cho khóa của bạn
4. Tạo một vai trò giới hạn cho các thao tác mã hóa/giải mã trên KMS
Chuyển đến IAM & Quản trị -> Vai trò -> Tạo vai trò
Nhập bất kỳ nội dung nào cho tiêu đề và ID của vai trò
Nhấp vào Thêm quyền, rồi thêm nội dung sau
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Gán danh tính liên kết của OpenAI cho vai trò KMS giới hạn cho các thao tác mã hóa/giải mã
Chuyển đến Bảo mật -> Bảo vệ dữ liệu > Quản lý khóa
Nhấp vào tên vòng khóa của bạn, rồi nhấp vào tên khóa của bạn để đến trang chi tiết khóa.
Nhấp vào thẻ Quyền, rồi nhấp vào nút Cấp quyền truy cập

Gán danh tính liên kết của OpenAI cho vai trò tùy chỉnh bạn đã tạo trước đó
Trong phần Thêm đối tượng chính, nhập principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
Trong phần Gán vai trò, chọn vai trò tùy chỉnh bạn đã tạo ở bước trước cho các quyền EKM giới hạn
6. Áp dụng mọi hạn chế bổ sung phù hợp với thực tiễn 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 thực tiễn bảo mật nội bộ của mình, 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 như đượ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 đầu mối OpenAI của bạn và chia sẻ nội dung sau:
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
Khu vực nơi khóa chính của Hệ thống quản lý khóa của bạn được đặt
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, 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.
Trong bước này, chúng tôi sẽ xác thực thiết lập của bạn trên GCP bằng cách kiểm tra rằng chúng tôi có thể xác thực với KMS của bạn.
Điều 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": "gcp",
"name": "GCP EKM Config",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <ID tổ chức hoặc ID dự án của bạn>,
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
}'Sau đó, tạo một dự án OpenAI được 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.
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"
}'