Criar atribuições de papel do Azure
Nesta seção, você concede permissões para que o GKE no Azure acesse as APIs do Azure.
Para salvar os IDs da principal de serviço e da assinatura em uma variável de shell, execute o
comando a seguir. Substitua APPLICATION_NAME
por um nome
para o aplicativo.
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)
Atribua permissões ao principal de serviço. O GKE no Azure requer permissões para provisionar os papéis necessários aos recursos gerenciados do Azure no nível da assinatura.
Para criar um papel personalizado com as permissões necessárias no escopo da assinatura:
Crie um novo arquivo denominado
RoleAssignmentCreator.json
.Abra
RoleAssignmentCreator.json
em um editor e adicione as seguintes permissões:{ "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}"] }
Crie o novo papel personalizado com o seguinte comando:
az role definition create --role-definition "~/CustomRoles/RoleAssignmentCreator.json"
Atribua o papel ao principal de serviço usando o seguinte comando:
az role assignment create --assignee ${SERVICE_PRINCIPAL_ID} --role "Role Assignment Creator" --scope /subscriptions/${SUBSCRIPTION_ID}
Ao atribuir permissões, é possível definir o escopo delas no nível da assinatura do Azure, que se aplica a todos os recursos da assinatura, ou no nível do grupo de recursos, o que limita as permissões a um grupo de recursos específico.
Inscrição
Atribua os papéis de Colaborador, Administrador de acesso de usuário e Administrador do Vault à sua assinatura:
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}"
Grupo de recursos
Crie atribuições de papéis com escopo para o grupo de recursos do cluster. Substitua
CLUSTER_RESOURCE_GROUP_NAME
pelo nome do grupo de recursos do GKE no 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 a Rede Virtual do Azure estiver em um grupo de recursos diferente, crie atribuições de Papel com escopo definido para o grupo de recursos de rede virtual.
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"
Substitua:
VNET_RESOURCE_GROUP_NAME
: o nome do grupo de recursos da VNet do GKE no Azure