创建 Azure Active Directory 应用

在本部分中,您将创建 Azure Active Directory (Azure AD) 应用和服务主账号对象。GKE on Azure 使用这些对象在 Azure 上存储配置信息。

  1. 如需创建 Azure AD 应用,请运行以下命令:

    az ad app create --display-name APPLICATION_NAME
    

    APPLICATION_NAME 替换为您的应用的名称,例如 anthos-clusters

  2. 要将应用的 ID 保存到环境变量以供稍后使用,请运行以下命令:

    APPLICATION_ID=$(az ad app list --all \
     --query "[?displayName=='APPLICATION_NAME'].appId" \
     --output tsv)
    

    APPLICATION_NAME 替换为应用的名称。

  3. 如需为应用创建服务主账号,请运行以下命令:

    az ad sp create --id "${APPLICATION_ID}"
    

设置工作负载身份联合

工作负载身份联合允许 GKE on Azure 使用 Google 服务帐号向 Azure 进行身份验证。向 Azure 进行身份验证的这个方法比旧版 AzureClient 身份验证方法更简单,后者要求您管理证书并手动将其上传到 Azure Active Directory (AD)。

如需在 Azure AD 应用中配置联合身份凭据,请运行以下命令。请注意,您最多可以向每个 Azure AD 应用添加 20 个凭据。

  1. 创建名为 credential.json 的 JSON 文件。

    {
      "name": "CREDENTIAL_NAME",
      "issuer": "https://accounts.google.com",
      "subject": "service-PROJECT_NUMBER@gcp-sa-gkemulticloud.iam.gserviceaccount.com",
      "audiences": ["api://AzureADTokenExchange"],
      "description": "Allow GKE on Azure to authenticate to the Azure AD application using a Google service account."
    }
    
    • CREDENTIAL_NAME:凭据名称。
    • PROJECT_NUMBER:托管集群的 Google Cloud 项目的编号。
  2. 在 Azure AD 应用中创建联合身份凭据:

    az ad app federated-credential create --id "${APPLICATION_ID}" --parameters credential.json
    

如需了解详情,请参阅 Azure 文档与 Google Cloud 的 Azure AD 工作负载身份联合

您还可以使用 Terraform 预配 Azure 联合身份凭据。如需了解详情,请参阅 azuread_application_federated_identity_credential

后续步骤