Configurar o Key Vault para rotação de credenciais gerenciadas no Nexus do Operador
O Nexus do Operador do Azure utiliza segredos e certificados para gerenciar a segurança de componentes em toda a plataforma. A plataforma Nexus do Operator lida com a rotação desses segredos e certificados. Por padrão, o Nexus do Operador armazena as credenciais em um Key Vault gerenciado. Para manter as credenciais rotacionadas no seu Key Vault, o usuário deve configurar seu próprio Key Vault para receber credenciais rotacionadas. Essa configuração exige que o usuário configure o Key Vault para a instância do Nexus do Operador do Azure. Depois de criado, o usuário precisa adicionar uma atribuição de função no Cofre de Chaves do Cliente para permitir que a Plataforma Nexus do Operador escreva credenciais atualizadas e, além disso, vincule o Cofre de Chaves do Cliente ao Recurso de Cluster Nexus.
Pré-requisitos
- Instale a última versão das extensões apropriadas da CLI
- Obter a ID de Assinatura para assinatura do cliente
Observação
Um único Key Vault pode ser usado para qualquer número de clusters.
Configurar o Key Vault usando a identidade gerenciada para o Gerenciador de Cluster
A partir da versão da API 2024-06-01-public-preview, as identidades gerenciadas no Gerenciador de Cluster são usadas para acessar gravação para fornecer credenciais rotacionadas em um cofre de chaves. A identidade do Gerenciador de Clusters pode ser atribuída pelo sistema ou atribuída pelo usuário e pode ser gerenciada diretamente pelas APIs ou via CLI.
Estes exemplos descrevem como configurar uma identidade gerenciada para um Gerenciador de Cluster.
- Criar ou atualizar o Gerenciador de Cluster com uma identidade atribuída pelo sistema
az networkcloud clustermanager create --name "clusterManagerName" --location "location" \
--analytics-workspace-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
--fabric-controller-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/fabricControllerName" \
--managed-resource-group-configuration name="my-managed-rg" --tags key1="myvalue1" key2="myvalue2" --resource-group "resourceGroupName" --mi-system-assigned
- Criar ou atualizar o Gerenciador de Clusters com uma identidade atribuída pelo usuário
az networkcloud clustermanager create --name <Cluster Manager Name> --location <Location> \
--analytics-workspace-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
--fabric-controller-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/fabricControllerName" \
--managed-resource-group-configuration name="my-managed-rg" --tags key1="myvalue1" key2="myvalue2" \
--resource-group <Resource Group Name> --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAI"
- Adicionar a identidade atribuída pelo sistema ao Gerenciador de Cluster
az networkcloud clustermanager update --name <Cluster Manager Name> --resource-group <Resource Group Name> --mi-system-assigned
- Adicionar a identidade atribuída pelo usuário ao Gerenciador de Clusters
az networkcloud clustermanager update --name <Cluster Manager Name> --resource-group <Resource Group Name> \
--mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAI"
Configurar o Arquivo Secreto do Cluster Nexus
Registre o Key Vault do Cliente como o arquivo secreto do cluster Nexus. A ID do recurso do cofre de chaves deve ser configurada no cluster e habilitada para armazenar os segredos do cluster.
Exemplo:
# Set and enable Customer Key Vault on Nexus cluster
az networkcloud cluster update --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --secret-archive "{key-vault-id:<Key Vault Resource ID>,use-key-vault:true}"
# Show Customer Key Vault setting (secretArchive) on the Nexus cluster
az networkcloud cluster show --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --query secretArchive
Para obter mais ajuda:
az networkcloud cluster update --secret-archive ?? --help
Obter a ID da entidade de segurança para a identidade gerenciada do Gerenciador de Cluster
Depois que uma identidade gerenciada for configurada, use a CLI para exibir a identidade e os dados de ID da entidade de segurança associados no gerenciador de cluster.
Exemplo:
az networkcloud clustermanager show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Manager Resource Group Name>/providers/Microsoft.NetworkCloud/clusterManagers/<Cluster Manager Name>
Exemplo de identidade atribuída pelo sistema:
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned"
},
Exemplo de identidade atribuída pelo usuário:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
}
}
},
Consulte Conceder Acesso de Identidade Gerenciada a um Key Vault para a Rotação de Credenciais para atribuir a função apropriada à ID da Entidade de Identidade Gerenciada.
Configurar o Key Vault usando a Identidade Gerenciada para Cluster
Importante
Observe que esse método para configurar um cofre de chaves para rotacionar as credenciais está em versão prévia. Esse método só pode ser usado com cofres de chaves que não tenham o firewall habilitado. Se o ambiente exigir que o firewall do cofre de chaves seja habilitado, use o método de identidade Gerenciador de Cluster existente.
A partir da API 2024-10-01-preview, as identidades gerenciadas no recurso Cluster Nexus podem ser usadas em vez de o Gerenciador de Cluster. A identidade gerenciada do Cluster pode ser atribuída pelo sistema ou atribuída pelo usuário e pode ser gerenciada diretamente pelas APIs ou CLI.
Observação
Se a identidade gerenciada do Cluster Nexus estiver configurada para o cofre de chaves, essas configurações substituirão as configurações configuradas em Configurar o Key Vault Usando a Identidade Gerenciada do Gerenciador de Cluster
Definir as Configurações de Arquivo Morto do Segredo do Cluster Nexus
As configurações de arquivo morto do segredo do Cluster Nexus especificam o URI do Azure Key Vault em que as credenciais rotacionadas são armazenadas e a identidade gerenciada usada para acessá-la.
Esses exemplos descrevem como configurar uma identidade gerenciada para um Cluster Nexus e configurá-la como parte das configurações de arquivo morto do segredo.
Observação
As configurações de arquivo morto do segredo especificam o URI do Key Vault, não a ID do recurso do Key Vault e a identidade gerenciada especificada precisa ser configurada para o Cluster do Nexus.
- Crie o Cluster Nexus com a identidade atribuída pelo sistema para acessar o Key Vault para as credenciais rotacionadas.
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-system-assigned \
--secret-archive-settings identity-type="SystemAssignedIdentity" vault-uri="https://<key vault name>.vault.azure.net/"
...
--subscription "<subscription>"
- Crie o Cluster Nexus com a identidade atribuída pelo usuário para acessar o Key Vault para as credenciais rotacionadas.
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--secret-archive-settings identity-type="UserAssignedIdentity" identity-resource-id="<user-assigned-identity-resource-id>" vault-uri="https://<key vault name>.vault.azure.net/"
...
--subscription "<subscription>"
- Atualize o Cluster Nexus existente com a identidade atribuída pelo sistema para acessar o Key Vault para as credenciais rotacionadas.
az networkcloud cluster update --ids <cluster-resource-id> \
--mi-system-assigned \
--secret-archive-settings identity-type="SystemAssignedIdentity" vault-uri="https://<key vault name>.vault.azure.net/"
- Atualizar o Cluster Nexus existente com a identidade atribuída pelo usuário
az networkcloud cluster update --ids <cluster-resource-id> \
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--secret-archive-settings identity-type="UserAssignedIdentity" identity-resource-id="<user-assigned-identity-resource-id>" vault-uri="https://<key vault name>.vault.azure.net/"
Para obter mais ajuda:
az networkcloud cluster update --secret-archive-settings '??' --help
Obter a ID da Entidade de Segurança para a Identidade Gerenciada do Cluster
Depois que uma identidade gerenciada for configurada para o Cluster Nexus, use a CLI para exibir a identidade e obter o principalId para a identidade gerenciada especificada nas configurações de arquivo morto do segredo.
Exemplo:
az networkcloud cluster show --ids <cluster-resource-id>
Exemplo de identidade atribuída pelo sistema:
"identity": {
"principalId": "2cb564c1-b4e5-4c71-bbc1-6ae259aa5f87",
"tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
"type": "SystemAssigned"
},
Exemplo de identidade atribuída pelo usuário:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
"clientId": "e67dd610-99cf-4853-9fa0-d236b214e984",
"principalId": "8e6d23d6-bb6b-4cf3-a00f-4cd640ab1a24"
}
}
},
Consulte Conceder Acesso de Identidade Gerenciada a um Key Vault para a Rotação de Credenciais para atribuir a função apropriada à ID da Entidade de Identidade Gerenciada.
Conceder o acesso da identidade gerenciada a um cofre de chaves para a rotação de credenciais
Observação
Uma identidade gerenciada atribuída ao usuário pode ser criada e receber acesso ao cofre de chaves antes da criação do Cluster Nexus e antes da implementação. Uma identidade atribuída pelo sistema deve ter acesso ao cofre de chaves após a criação do cluster, mas antes da implantação.
- Atribua a Função de Serviço de Gravador do Cofre de Chaves do Nexus do Operador. Verifique se o Controle de acesso baseado em função do Azure está selecionado como o modelo de permissão para o cofre de chaves no modo de exibição Configuração do Access. Em seguida, na exibição Controle de Acesso, selecione para adicionar uma atribuição de função.
Nome da Função | ID de definição de função |
---|---|
Função de serviço de gravador do cofre de chaves do Nexus do operador (versão prévia) | 44f0a1a8-6fea-4b35-980a-8ff50c487c97 |
Exemplo:
az role assignment create --assignee <Managed Identity Principal Id> --role 44f0a1a8-6fea-4b35-980a-8ff50c487c97 --scope /subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.KeyVault/vaults/<Key Vault Name>
Se estiver usando uma identidade gerenciada atribuída pelo usuário, prossiga para adicionar a permissão à identidade atribuída pelo usuário
Adicionar uma permissão à identidade atribuída pelo usuário
Ao usar uma identidade gerenciada atribuída pelo usuário para acessar um Key Vault, um cliente é obrigado a provisionar o acesso a essa identidade para a plataforma Nexus.
Especificamente, a permissão Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
precisa ser adicionada à identidade atribuída pelo usuário para o Microsoft Entra ID AFOI-NC-MGMT-PME-PROD
. É uma limitação conhecida da plataforma que será tratada no futuro.
- Abra o portal do Azure e localize a identidade atribuída pelo usuário em questão.
- Em IAM (Controle de acesso), clique em Adicionar atribuição de função.
- Selecione a Função: Operador de Identidade Gerenciada. (Consulte as permissões que a função fornece managed-identity-operator).
- Atribua acesso a: Usuário, grupo ou entidade de serviço.
- Selecione Membro: aplicativo AFOI-NC-MGMT-PME-PROD.
- Revise e conclua a atribuição.