Creazione di assegnazioni di ruoli Azure
In questa sezione, concederai a GKE su Azure le autorizzazioni per accedere alle API Azure.
Per salvare l'entità servizio e gli ID abbonamento in una variabile shell, esegui questo comando. Sostituisci APPLICATION_NAME
con un nome
per l'applicazione.
APPLICATION_ID=$(az ad app list --all \
--query "[?displayName=='APPLICATION_NAME'].appId" \
--output tsv)
SERVICE_PRINCIPAL_ID=$(az ad sp list --all --output tsv \
--query "[?appId=='$APPLICATION_ID'].id")
SUBSCRIPTION_ID=$(az account show --query "id" --output tsv)
Assegna le autorizzazioni all'entità di servizio. GKE su Azure richiede le autorizzazioni per eseguire il provisioning dei ruoli richiesti per le risorse Azure gestite a livello di abbonamento.
Per creare un ruolo personalizzato con autorizzazioni basate sugli abbonamenti richieste:
Crea un nuovo file denominato
RoleAssignmentCreator.json
.Apri
RoleAssignmentCreator.json
in un editor e aggiungi le seguenti autorizzazioni:{ "Name": "Role Assignment Creator", "IsCustom": true, "Description": "Can create Azure role assignments.", "Actions": [ "Microsoft.Authorization/roleAssignments/read", "Microsoft.Authorization/roleAssignments/write", "Microsoft.Authorization/roleAssignments/delete", "Microsoft.Authorization/roleDefinitions/read" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": ["/subscriptions/${SUBSCRIPTION_ID}"] }
Crea il nuovo ruolo personalizzato con il comando seguente:
az role definition create --role-definition "~/CustomRoles/RoleAssignmentCreator.json"
Assegna il ruolo all'entità di servizio utilizzando il seguente comando:
az role assignment create --assignee ${SERVICE_PRINCIPAL_ID} --role "Role Assignment Creator" --scope /subscriptions/${SUBSCRIPTION_ID}
Quando assegni le autorizzazioni, puoi definire l'ambito a livello di abbonamento Azure, che si applica a tutte le risorse all'interno dell'abbonamento, o a livello di gruppo di risorse, limitando le autorizzazioni a un gruppo di risorse specifico.
Abbonamento
Assegna i ruoli Collaboratore, Amministratore accesso utenti e Amministratore Key Vault al tuo abbonamento:
az role assignment create \
--role "Contributor" \
--assignee "${SERVICE_PRINCIPAL_ID}" \
--scope "/subscriptions/${SUBSCRIPTION_ID}"
az role assignment create \
--role "User Access Administrator" \
--assignee "${SERVICE_PRINCIPAL_ID}" \
--scope "/subscriptions/${SUBSCRIPTION_ID}"
az role assignment create \
--role "Key Vault Administrator" \
--assignee "${SERVICE_PRINCIPAL_ID}" \
--scope "/subscriptions/${SUBSCRIPTION_ID}"
Gruppo di risorse
Crea assegnazioni del ruolo con ambito a livello di gruppo di risorse del cluster. Sostituisci
CLUSTER_RESOURCE_GROUP_NAME
con il nome del gruppo di risorse per GKE su Azure.az role assignment create \ --role "Contributor" \ --assignee "${SERVICE_PRINCIPAL_ID}" \ --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/CLUSTER_RESOURCE_GROUP_NAME" az role assignment create \ --role "User Access Administrator" \ --assignee "${SERVICE_PRINCIPAL_ID}" \ --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/CLUSTER_RESOURCE_GROUP_NAME" az role assignment create \ --role "Key Vault Administrator" \ --assignee "${SERVICE_PRINCIPAL_ID}" \ --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/CLUSTER_RESOURCE_GROUP_NAME"
Se la rete virtuale di Azure si trova in un gruppo di risorse diverso, crea assegnazioni di ruoli con ambito basato sul gruppo di risorse della rete virtuale.
az role assignment create \ --role "Virtual Machine Contributor" \ --assignee "${SERVICE_PRINCIPAL_ID}" \ --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/VNET_RESOURCE_GROUP_NAME" az role assignment create \ --role "User Access Administrator" \ --assignee "${SERVICE_PRINCIPAL_ID}" \ --scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/VNET_RESOURCE_GROUP_NAME"
Sostituisci quanto segue:
VNET_RESOURCE_GROUP_NAME
: il nome del gruppo di risorse per GKE su Azure VNet