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}"
    

Workload Identity 連携を設定する

Workload Identity 連携を使用すると、GKE on Azure が Google サービス アカウントを使用して Azure に対する認証を行うことができます。Azure に対するこの認証方法は、証明書を管理し、手動で Azure Active Directory(AD)にアップロードする必要があった従来の AzureClient 認証方式よりもシンプルです。

Azure AD アプリケーションで連携 ID 認証情報を構成するには、次のコマンドを実行します。各 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 アプリケーションで連携 ID 認証情報を作成します。

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

詳細については、Azure のドキュメント Azure AD workload identity federation with Google Cloud をご覧ください。

Terraform を使用して Azure 連携 ID 認証情報をプロビジョニングすることもできます。詳細については、azuread_application_federated_identity_credential をご覧ください。

次のステップ