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

Hướng dẫn từng bước để cấp phát GCP và kích hoạt EKM

Đã cập nhật: 2 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 hướng dẫn cách thiết lập tài khoản GCP của bạn để cấp cho OpenAI các quyền hạn chế trên KMS của bạn.

Diagram of OpenAI GCP EKM integration flow using STS token exchange and KMS encrypt or decrypt requests

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ừ tài khoản GCP do OpenAI sở hữu có dạng gần giống 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 một token truy cập khi token danh tính đó được cung cấp.

  1. Đi tới IAM & Admin -> Workload Identity Federation và nhấp vào Create Pool

    GCP IAM & Admin with Workload Identity Federation selected
  2. Trong bước Create an identity pool, nhập bất kỳ giá trị nào cho tên pool.

    1. Hãy ghi nhớ giá trị này để dùng sau - bạn sẽ cần đăng ký giá trị này với OpenAI

  3. Trong bước Add a provider to pool:

    1. Trong Select a provider, chọn OpenID Connect (OIDC)

    2. Nhập bất kỳ giá trị nào cho tên provider.

    3. Trong phần Issuer (URL), nhập https://accounts.google.com

    4. Trong phần Audiences

      1. Chọn Allowed audiences

      2. Nhập audience mà OpenAI nên chỉ định khi chúng tôi gửi cho bạn một token.

        1. Đối với ChatGPT hoặc API: Bạn có thể nhập ID tổ chức API OpenAI (org-xxx)

        2. Đối với API: bạn có thể nhập một ID dự án API cụ thể để chi tiết hơn.

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. Trong phần Attribute mapping

      1. đối với google.subject hãy nhập assertion.sub

        Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
    6. Trong phần Attribute conditions

      1. nhập assertion.sub == "105900137572174660365"

  4. Bây giờ bạn sẽ thấy workload identity pool workload identity provider của mình được liệt kê trên trang https://console.cloud.google.com/iam-admin/workload-identity-pools

    1. Workload identity pool id

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. Workload identity provider ID

      GCP Workload Identity Provider edit page with the provider ID field highlighted

2. Đảm bảo KMS đã được bật

Đi tới 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

  1. Đi tới Security -> Data Protection > Key Management

  2. Trong tab Overview, nhấp vào Create key ring

    1. Chọn bất kỳ tên nào cho key ring của bạn

    2. Đối với Purpose and algorithm, chọn Symmetric encrypt/decrypt

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. Sau khi tạo key ring, key ring đó sẽ được liệt kê trong tab Key Rings. Nhấp vào key ring.

    4. Trong chi tiết key ring, nhấp vào Create Key

      1. Chọn bất kỳ tên nào cho khóa của bạn

4. Tạo một vai trò hạn chế cho các thao tác mã hóa/giải mã trên KMS

  1. Đi tới IAM & Admin -> Roles -> Create role

  2. Nhập bất kỳ giá trị nào cho tiêu đề và ID của vai trò

  3. Nhấp vào Add Permissions, sau đó thêm các quyền sau

    1. cloudkms.cryptoKeyVersions.useToDecrypt

    2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Gán danh tính liên kết của OpenAI vào vai trò KMS hạn chế cho các thao tác mã hóa/giải mã

  1. Đi tới Security -> Data Protection > Key Management

  2. Nhấp vào tên key ring của bạn, sau đó nhấp vào tên khóa để đi tới trang chi tiết khóa.

    1. Nếu bạn chưa có phần này, hãy quay lại mục Create a KMS

  3. Nhấp vào tab Permissions, sau đó nhấp vào nút Grant Access

    Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  4. Gán danh tính liên kết của OpenAI vào vai trò tùy chỉnh mà bạn đã tạo trước đó

    1. Trong phần Add principals, nhập principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

      1. YOUR_GCP_PROJECT_NUMBER ở đây là dự án mà bạn đã nhận diện danh tính liên kết của OpenAI bằng cách tạo YOUR_GCP_WORKLOAD_IDENTITY_POOL. Dự án này có thể, nhưng không bắt buộc phải, là cùng dự án nơi KMS của bạn hoạt động.

      2. Nếu các dự án khác nhau, hãy đảm bảo KMS ít nhất đã được bật trên dự án còn lại bằng cách đi tới https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview

    2. Trong phần Assign roles, chọn vai trò tùy chỉnh mà bạn đã tạo ở bước trước cho các quyền EKM hạn chế

6. Áp dụng mọi hạn chế bổ sung phù hợp với các biện pháp 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 biện pháp 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 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ẻ những thông tin sau:

  • "workload_identity_project_number": "123456789012",

    • Số dự án GCP gồm 12 chữ số nơi bạn đã đăng ký workload identity của OpenAI

  • "workload_identity_pool_id": "openai-azure",

    • Pool chứa provider Workload Identity mà bạn đã đăng ký cho OpenAI

  • "workload_identity_provider_id": "openai-ekm-service-role",

    • Provider Workload Identity mà bạn đã đăng ký cho OpenAI

  • "kms_project_id": "adjective-noun-12345",

    • Tên của dự án GCP nơi KMS của bạn hoạt động

  • "kms_key_name": "openai-kms-key",

    • Tên của khóa chính trong Key Management System

  • "kms_key_ring_name": "openai-kms-key-ring",

    • Key ring của Key Management System chứa khóa chính mà bạn quản lý

  • "kms_key_location": "us-east1"

    • Khu vực nơi đặt khóa chính của Key Management System

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 External Keys in the 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 external key id.

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

  • Việc này sẽ 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 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"

}'

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