5.3. Azure DNS プロバイダーの認証情報を設定する
手順
次のように、DNS 管理用の新規 Azure サービスプリンシパルを作成します。
DNS_NEW_SP_NAME=kuadrantDnsPrincipal DNS_SP=$(az ad sp create-for-rbac --name $DNS_NEW_SP_NAME) DNS_SP_APP_ID=$(echo $DNS_SP | jq -r '.appId') DNS_SP_PASSWORD=$(echo $DNS_SP | jq -r '.password')サービスプリンシパルの詳細は、Microsoft Azure のドキュメント を参照してください。
使用しているサービスプリンシパル用に管理するゾーンへの読み取りおよびコントリビューターアクセスを付与するには、以下の手順を実行します。
次のように、サービスプリンシパルへのアクセスを付与するために使用される DNS ID を取得します。
DNS_ID=$(az network dns zone show --name example.com \ --resource-group ExampleDNSResourceGroup --query "id" --output tsv) # Get your resource group ID RESOURCE_GROUP_ID=az group show --resource-group ExampleDNSResourceGroup | jq ".id" -r次のように、リソースグループへの読み取りアクセスを付与します。
az role assignment create --role "Reader" --assignee $DNS_SP_APP_ID --scope $DNS_ID次のように DNS ゾーンへのコントリビューターアクセスを付与します。
az role assignment create --role "Contributor" --assignee $DNS_SP_APP_ID --scope $DNS_ID
地理的および重み付きレスポンスに高度なトラフィックルールを設定しているため、次のようにトラフィックマネージャーと DNS ゾーンアクセスも付与する必要があります。
az role assignment create --role "Traffic Manager Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID az role assignment create --role "DNS Zone Contributor" --assignee $DNS_SP_APP_ID --scope $RESOURCE_GROUP_ID cat <<-EOF > /local/path/to/azure.json { "tenantId": "$(az account show --query tenantId -o tsv)", "subscriptionId": "$(az account show --query id -o tsv)", "resourceGroup": "ExampleDNSResourceGroup", "aadClientId": "$DNS_SP_APP_ID", "aadClientSecret": "$DNS_SP_PASSWORD" } EOF次のように、認証情報の
Secretリソースを作成します。kubectl create secret generic test-azure-credentials \ --namespace=api-gateway \ --type=kuadrant.io/azure \ --from-file=azure.json=/local/path/to/azure.jsonこの場合、シークレット
typeをazureに設定する必要があります。