Xác thực với Cloud DNS

Tài liệu này mô tả cách xác thực với Cloud DNS theo phương thức lập trình. Cách bạn xác thực với Cloud DNS phụ thuộc vào giao diện bạn sử dụng để truy cập API và môi trường nơi mã của bạn đang chạy.

Để biết thêm thông tin về việc xác thực Google Cloud , hãy xem nội dung Phương thức xác thực.

Quyền truy cập API

Cloud DNS hỗ trợ quyền truy cập có lập trình. Bạn có thể truy cập API theo các cách sau:

Thư viện ứng dụng

Thư viện ứng dụng Cloud DNS cung cấp tính năng hỗ trợ ngôn ngữ cấp cao để xác thực với Cloud DNS theo phương thức lập trình. Để xác thực các lệnh gọi đến API Google Cloud , thư viện ứng dụng hỗ trợ Thông tin xác thực mặc định của ứng dụng (ADC); thư viện tìm thông tin xác thực trong một tập hợp các vị trí đã xác định và sử dụng thông tin xác thực đó để xác thực các yêu cầu đến API. Với ADC, bạn có thể cung cấp thông tin xác thực cho ứng dụng của mình trong nhiều môi trường, chẳng hạn như phát triển cục bộ hoặc phát hành chính thức, mà không cần sửa đổi mã ứng dụng.

Google Cloud CLI

Khi sử dụng Gcloud CLI để truy cập vào Cloud DNS, bạn sẽ đăng nhập vào Gcloud CLI bằng một tài khoản người dùng. Tài khoản này sẽ cung cấp thông tin xác thực mà các lệnh Gcloud CLI sử dụng.

Nếu chính sách bảo mật của tổ chức ngăn tài khoản người dùng có các quyền cần thiết, bạn có thể sử dụng tính năng giả mạo tài khoản dịch vụ.

Để biết thêm thông tin, hãy xem phần Xác thực để sử dụng CLI gcloud. Để biết thêm thông tin về cách sử dụng gcloud CLI với Cloud DNS, hãy xem các trang tham khảo về CLI của Google Cloud CLI.

Kiến trúc chuyển trạng thái đại diện (REST)

Bạn có thể xác thực với Cloud DNS API bằng cách sử dụng thông tin xác thực gcloud CLI hoặc bằng cách sử dụng Thông tin xác thực mặc định của ứng dụng. Để biết thêm thông tin về việc xác thực cho các yêu cầu REST, hãy xem phần Xác thực để sử dụng REST. Để biết thông tin về các loại thông tin xác thực, hãy xem phần Thông tin xác thực gcloud CLI và thông tin xác thực ADC.

Thiết lập tính năng xác thực cho Cloud DNS

Cách bạn thiết lập quy trình xác thực phụ thuộc vào môi trường mà mã của bạn đang chạy.

Các tuỳ chọn sau đây để thiết lập quy trình xác thực là những tuỳ chọn được sử dụng phổ biến nhất. Để biết thêm tuỳ chọn và thông tin về việc xác thực, hãy xem phần Phương thức xác thực.

Đối với môi trường phát triển cục bộ

Bạn có thể thiết lập thông tin xác thực cho môi trường phát triển cục bộ theo các cách sau:

Thư viện ứng dụng hoặc công cụ của bên thứ ba

Thiết lập Thông tin xác thực mặc định của ứng dụng (ADC) trong môi trường cục bộ:

  1. After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  2. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Màn hình đăng nhập sẽ xuất hiện. Sau khi bạn đăng nhập, thông tin xác thực của bạn sẽ được lưu trữ trong tệp thông tin xác thực cục bộ mà ADC sử dụng.

Để biết thêm thông tin về cách làm việc với ADC trong môi trường cục bộ, hãy xem phần Thiết lập ADC cho môi trường phát triển cục bộ.

Yêu cầu REST qua dòng lệnh

Khi tạo yêu cầu REST từ dòng lệnh, bạn có thể sử dụng thông tin xác thực CLI gcloud bằng cách đưa gcloud auth print-access-token vào lệnh gửi yêu cầu.

Ví dụ sau đây liệt kê các tài khoản dịch vụ cho dự án đã chỉ định. Bạn có thể sử dụng cùng một mẫu cho mọi yêu cầu REST.

Trước khi sử dụng bất kỳ dữ liệu yêu cầu nào, hãy thay thế như sau:

  • PROJECT_ID: Mã dự án Google Cloud của bạn.

Để gửi yêu cầu, hãy mở rộng một trong các lựa chọn sau:

 

Để biết thêm thông tin về cách xác thực bằng REST và gRPC, hãy xem phần Xác thực để sử dụng REST. Để biết thông tin về sự khác biệt giữa thông tin xác thực ADC cục bộ và thông tin xác thực gcloud CLI, hãy xem phần Cấu hình xác thực gcloud CLI và cấu hình ADC.

Mạo danh tài khoản dịch vụ

Trong hầu hết các trường hợp, bạn có thể sử dụng thông tin xác thực người dùng để xác thực từ môi trường phát triển cục bộ. Nếu không thể thực hiện việc đó hoặc nếu cần kiểm thử các quyền được chỉ định cho tài khoản dịch vụ, bạn có thể sử dụng tính năng mạo danh tài khoản dịch vụ. Bạn phải có quyền iam.serviceAccounts.getAccessToken, quyền này có trong vai trò IAM Trình tạo mã thông báo tài khoản dịch vụ (roles/iam.serviceAccountTokenCreator).

Bạn có thể thiết lập CLI gcloud để sử dụng tính năng mạo danh tài khoản dịch vụ bằng cách sử dụng lệnh gcloud config set:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Đối với một số ngôn ngữ, bạn có thể sử dụng tính năng mạo danh tài khoản dịch vụ để tạo tệp ADC cục bộ cho thư viện ứng dụng khách sử dụng. Phương pháp này chỉ được hỗ trợ cho các thư viện ứng dụng Go, Java, Node.js và Python, không được hỗ trợ cho các ngôn ngữ khác. Để thiết lập tệp ADC cục bộ bằng tính năng mạo danh tài khoản dịch vụ, hãy sử dụng cờ --impersonate-service-account với lệnh gcloud auth application-default login:

gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL

Để biết thêm thông tin về việc mạo danh tài khoản dịch vụ, hãy xem bài viết Sử dụng tính năng mạo danh tài khoản dịch vụ.

Trên Google Cloud

Để xác thực một khối lượng công việc đang chạy trên Google Cloud, bạn sử dụng thông tin xác thực của tài khoản dịch vụ được đính kèm vào tài nguyên điện toán nơi mã của bạn đang chạy, chẳng hạn như một thực thể máy ảo (VM) Compute Engine. Phương pháp này là phương thức xác thực ưu tiên cho mã chạy trên tài nguyên điện toán Google Cloud .

Đối với hầu hết các dịch vụ, bạn phải đính kèm tài khoản dịch vụ khi tạo tài nguyên sẽ chạy mã của bạn; bạn không thể thêm hoặc thay thế tài khoản dịch vụ sau này. Compute Engine là một ngoại lệ – dịch vụ này cho phép bạn đính kèm tài khoản dịch vụ vào một thực thể máy ảo bất cứ lúc nào.

Sử dụng CLI gcloud để tạo tài khoản dịch vụ và đính kèm tài khoản đó vào tài nguyên của bạn:

  1. After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  2. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. To provide access to your project and your resources, grant a role to the service account:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
      • ROLE: the role to grant
    3. To grant another role to the service account, run the command as you did in the previous step.
    4. Grant the required role to the principal that will attach the service account to other resources.

      gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
      • USER_EMAIL: the email address for a Google Account
  3. Tạo tài nguyên sẽ chạy mã của bạn và đính kèm tài khoản dịch vụ vào tài nguyên đó. Ví dụ: nếu bạn sử dụng Compute Engine:

    Create a Compute Engine instance. Configure the instance as follows:
    • Thay thế INSTANCE_NAME bằng tên thực thể bạn muốn.
    • Đặt cờ --zone thành vùng mà bạn muốn tạo thực thể.
    • Đặt cờ --service-account thành địa chỉ email cho tài khoản dịch vụ mà bạn đã tạo.
    • gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL

Để biết thêm thông tin về cách xác thực với API của Google, hãy xem phần Phương thức xác thực.

Tại cơ sở hạ tầng riêng hoặc trên một nhà cung cấp dịch vụ đám mây khác

Phương pháp ưu tiên để thiết lập quy trình xác thực từ bên ngoài Google Cloud là sử dụng tính năng liên kết thông tin nhận dạng khối lượng công việc. Để biết thêm thông tin, hãy xem phần Thiết lập ADC cho máy chủ cục bộ hoặc nhà cung cấp dịch vụ đám mây khác trong tài liệu xác thực.

Kiểm soát quyền truy cập vào Cloud DNS

Sau khi xác thực với Cloud DNS, bạn phải được uỷ quyền để truy cập vào các tài nguyên Google Cloud . Cloud DNS sử dụng tính năng Quản lý danh tính và quyền truy cập (IAM) để uỷ quyền.

Để biết thêm thông tin về các vai trò của Cloud DNS, hãy xem phần Vai trò và quyền. Để biết thêm thông tin về IAM và uỷ quyền, hãy xem bài viết Tổng quan về IAM.

Bước tiếp theo