Tổng quan
Enterprise Key Management (EKM) cho phép OpenAI mã hóa dữ liệu bằng khóa gốc do bạn kiểm soát. Để OpenAI có thể gọi các thao tác mã hóa/giải mã trên Key Vault của bạn, chúng tôi cần được cấp quyền truy cập. Tài liệu này hướng dẫn cách thiết lập tài khoản Azure của bạn để OpenAI có thể đảm nhận một vai trò có quyền Key Vault.

Các bước
1. Tạo một service principal cho OpenAI trong tài khoản của bạn
Lấy access token
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID2. Tạo service principal - appId trong yêu cầu bên dưới là ID ứng dụng khách của OpenAI. Thao tác này sẽ tạo một principal với tên hiển thị “EKM - OpenAI Azure” - hãy ghi nhớ tên này cho các bước sau.
Hướng dẫn tích hợp OpenAI / Azure EKM - Tạo service principal
curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'2. Tạo vai trò tùy chỉnh để giới hạn quyền truy cập KMS
Đi tới Subscriptions -> Access Control (IAM)
Trong menu thả xuống + Add , chọn Add custom role
Đi tới tab JSON, nhấp Edit và thêm nội dung sau
Chọn bất kỳ tên vai trò nào - hãy ghi nhớ tên bạn đã chọn
Các quyền sau trong dataActions
Microsoft.KeyVault/vaults/keys/encrypt/action
Microsoft.KeyVault/vaults/keys/decrypt/action
Microsoft.KeyVault/vaults/keys/read

3. Tạo Key Vault + Key
Nếu bạn chưa có, hãy tạo một Key Vault mới trong cùng gói đăng ký nơi bạn vừa tạo vai trò tùy chỉnh của mình
Trong Key Vault đó, tạo một Key mới:
Đi tới Key Vault -> Objects -> Keys, rồi nhấp vào Generate/Import
Trong Options, chọn Generate

Chọn RSA cho thuật toán mã hóa.
Bạn có thể chọn bất kỳ kích thước khóa RSA nào
Cung cấp một tên khóa theo định dạng sau: <org-xxx>--<any_name> trong đó org-xxx là ID tổ chức OpenAI của bạn mà bạn có thể tìm thấy tại https://platform.openai.com/settings/organization/general

Nếu bạn không thể xem hoặc tạo khóa, hãy đảm bảo rằng bạn có vai trò Key Vault Administrator. Vai trò này là bắt buộc ngay cả khi bạn có vai trò Owner. Để được gán vai trò này:
Đi tới Key Vault->Access Control (IAM)
Nhấp vào Add-> Add role assignment

4. Tạo gán vai trò cho service principal OpenAI + KMS tùy chỉnh mới + khóa mới
Đi tới Key Vault -> Objects -> Keys sau đó nhấp vào hàng của khóa bạn đã tạo
Đi tới Access control (IAM) cho khóa bạn vừa nhấp vào (không phải key vault của bạn).
Trong menu thả xuống + Add, chọn Add role assignment

Trong tab Role, chọn tên của vai trò tùy chỉnh mà bạn vừa tạo.

Trong tab Members:
Nhấp vào “+ Select members”
Nhập “ekm -” vào thanh tìm kiếm, sau đó service principal OpenAI mà bạn đã tạo ở Bước 1 sẽ xuất hiện

5. Áp dụng mọi hạn chế bổ sung phù hợp với quy trình bảo mật của riêng bạn
Trên đây là thông tin tối thiểu 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 quy trình 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ư mô tả bên dưới, chúng tôi sẽ xác thực cấu hình của bạn.
Sau khi hoàn thành 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ẻ thông tin sau:
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
UUID tenant Azure của bạn
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
URI của kho Azure chứa khóa gốc do bạn quản lý
"key_name": "<YOUR_KEY_NAME>"
Tên của khóa gốc Azure Key Vault do bạn quản lý
Tên khóa phải có dạng <org-xxx>--<any_name> trong đó org-xxx là ID tổ chức OpenAI của bạn mà bạn có thể tìm thấy tại https://platform.openai.com/settings/organization/general
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 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 ngoài trong Management API
Trước tiên, hãy đăng ký khóa 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 ngoài có dạng extkey_xxx
Ở bước này, chúng tôi sẽ xác thực rằng dữ liệu đầu vào của bạn là hợp lệ và chúng tôi có thể xác thực với KMS của bạn.
Việc này vẫn chưa thêm EKM vào dự án OpenAI của bạn.
# Thao tác này tạo một ID khóa ngoài có dạng extkey_xxx
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "<ANY_FRIENDLY_NAME>",
"tenant_id": "<YOUR_AZURE_TENANT_UUID>",
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
"key_name": "<YOUR_KEY_NAME>"
}'Sau đó, tạo một dự án OpenAI được liên kết với khóa ngoài. Sau bước này, EKM sẽ đượ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)
Hướng dẫn tích hợp OpenAI / Azure EKM - Tạo dự á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"
}'