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 / Azure EKM

Hướng dẫn từng bước để thiết lập Azure 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. Để 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.

Azure EKM flow where OpenAI EKM uses Microsoft Entra ID to access your Key Vault and master KEK

Các bước

1. Tạo một thực thể dịch vụ cho OpenAI trong tài khoản của bạn

  1. Lấy token truy cập

az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID
  1. Tạo thực thể dịch vụ - appId trong yêu cầu bên dưới là ID máy khách ứng dụng của OpenAI. Thao tác này sẽ tạo một thực thể có 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 EKM OpenAI / Azure - Tạo thực thể dịch vụ

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 một vai trò tùy chỉnh để truy cập KMS giới hạn

  1. Đi tới Subscriptions -> Access Control (IAM)

  2. Trong menu thả xuống + Add, chọn Add custom role

  3. Đi tới tab JSON, nhấp vào Edit và thêm nội dung sau:

    1. Tên vai trò bất kỳ - hãy ghi nhớ tên bạn đã chọn

    2. Các quyền sau trong dataActions:

      1. Microsoft.KeyVault/vaults/keys/encrypt/action

      2. Microsoft.KeyVault/vaults/keys/decrypt/action

      3. Microsoft.KeyVault/vaults/keys/read

OpenAI / Azure EKM Integration Instructions Custom Role

3. Tạo Key Vault + Khóa

Nếu bạn chưa có, hãy tạo một Key Vault mới trong cùng subscription nơi bạn vừa tạo vai trò tùy chỉnh.

Trong Key Vault đó, hãy tạo một Khóa mới:

  1. Đi tới Key Vault -> Objects -> Keys, rồi nhấp vào Generate/Import

  2. Trong Options, chọn Generate

Azure Key Vault Keys page with Generate/Import highlighted to add a key
  1. Chọn RSA làm thuật toán mã hóa.

  2. Bạn có thể chọn bất kỳ kích thước khóa RSA nào

  3. Cung cấp 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, có thể tìm thấy tại https://platform.openai.com/settings/organization/general

Azure Key Vault key generation form with RSA selected and key name org-abcdefg--test-keyvault-key

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. Điều này là cần thiết ngay cả khi bạn có vai trò Owner. Để được gán vai trò:

  1. Đi tới Key Vault -> Access Control (IAM)

  2. Nhấp vào Add -> Add role assignment

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment

4. Tạo một phép gán vai trò cho thực thể dịch vụ OpenAI + KMS tùy chỉnh mới + khóa mới

  1. Đi tới Key Vault -> Objects -> Keys, rồi nhấp vào hàng của khóa bạn đã tạo

  2. Đ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).

  3. Trong menu thả xuống + Add, chọn Add role assignment

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  1. Trong tab Role, chọn tên của vai trò tùy chỉnh bạn vừa tạo.

Azure role list filtered for openai- with the openai-azure-kms-role entry
  1. Trong tab Members:

    1. Nhấp vào “+ Chọn thành viên”

    2. Nhập “ekm -” vào thanh tìm kiếm, sau đó thực thể dịch vụ OpenAI mà bạn đã tạo ở Bước 1 sẽ được tải

Azure role assignment Members step with EKM - OpenAI Azure Application selected as a member

5. Á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 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 riêng 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 đượ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ẻ thông tin sau:

  • "tenant_id": "<YOUR_AZURE_TENANT_UUID>"

  • "vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"

  • "key_name": "<YOUR_KEY_NAME>"

  • Tên của khóa chính Azure Key Vault mà 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, 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 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

  • 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 có dạng extkey_xxx

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

  • Thao tác này chưa thêm EKM vào dự án OpenAI của bạn.

# This generates an external key ID of the form 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 liên kết với khóa bên 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)

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?