Azure Active Directory アプリケーションを作成する
このセクションでは、Azure Active Directory(Azure AD)アプリケーションとサービス プリンシパル オブジェクトを作成します。GKE on Azure は、これらのオブジェクトを使用して Azure に構成情報を保存します。
Azure AD アプリケーションを作成するには、次のコマンドを実行します。
az ad app create --display-name APPLICATION_NAME
APPLICATION_NAME
は、アプリケーションの名前(anthos-clusters
など)に置き換えます。後で使用するためにアプリケーションの ID を環境変数に保存するには、次のコマンドを実行します。
APPLICATION_ID=$(az ad app list --all \ --query "[?displayName=='APPLICATION_NAME'].appId" \ --output tsv)
APPLICATION_NAME
は、アプリケーションの名前に置き換えます。アプリケーションのサービス プリンシパルを作成するには、次のコマンドを実行します。
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 個の認証情報を追加できます。
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 プロジェクトの番号。
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 をご覧ください。