Confira o suporte do Cluster do Nexus do Operador do Azure para identidades gerenciadas e recursos fornecidos pelo usuário
Para aprimorar a segurança da plataforma do Nexus do Operador, agora as identidades gerenciadas têm suporte para Clusters do Nexus do Operador. As identidades gerenciadas fornecem uma maneira segura para os aplicativos acessarem outros recursos do Azure e eliminam a necessidade de gerenciamento de credenciais por parte dos usuários. Além disso, o Nexus do Operador agora tem um modelo de recursos fornecido pelo usuário. Além de uma segurança aprimorada, essa mudança fornece uma experiência do usuário consistente em toda a plataforma.
As identidades gerenciadas são usadas com os seguintes recursos de usuário fornecidos nos Clusters do Nexus do Operador:
- Contas de armazenamento usadas para a saída de comandos Bare Metal run-* .
- Key Vaults usados para a rotação de credenciais.
- Workspaces do Log Analytics usados para capturar algumas métricas.
Para saber mais sobre identidades gerenciadas no Azure, confira Identidades gerenciadas para recursos do Azure. Os Clusters do Nexus do Operador dão suporte a várias Identidades Gerenciadas Atribuídas pelo Usuário (UAMI) ou a uma identidade gerenciada atribuída pelo sistema (SAMI).
Embora um usuário possa optar por usar qualquer tipo de identidade gerenciada, as UAMIs são recomendadas. Permitem que os usuários pré-configurem recursos com o acesso apropriado à UAMI antes da criação ou atualização do Cluster do Nexus do Operador. A mesma UAMI pode ser usada para todos os recursos ou, se quiserem um acesso granular, os usuários podem definir UAMIs para cada recurso.
Depois de adicionada, a Identidade só pode ser removida por meio da chamada à API no momento. Para obter informações sobre como usar a API para atualizar identidades gerenciadas do Cluster, confira Atualizar Identidades do Cluster. Essa seção inclui informações sobre como excluir as identidades gerenciadas.
Pré-requisitos
- Instalar a CLI do Azure.
- Instale a última versão das extensões apropriadas da CLI do Azure.
Observação
A funcionalidade de identidade gerenciada para o Workspace do Log Analytics e o Key Vault existe com a API 2024-10-01-preview e estará disponível com a API GA 2025-02-01.
Clusters do Nexus do Operador com Identidades Gerenciadas Atribuídas pelo Usuário (UAMI)
Uma boa prática é primeiro definir todos os recursos fornecidos pelo usuário (Conta de Armazenamento, LAW e Key Vault), as identidades gerenciadas associadas a esses recursos e, em seguida, atribuir o acesso apropriado ao recurso à identidade gerenciada. Se essas etapas não forem efetuadas antes da criação do Cluster, as etapas precisarão ser concluídas antes da implantação do Cluster.
Os impactos de não configurar esses recursos para um novo Cluster por ocasião da implantação são os seguintes:
- Conta de Armazenamento: as saídas do comando run-* não são gravadas na Conta de Armazenamento.
- LAW: a implantação do Cluster irá falhar, já que o LAW é necessário para instalar as extensões de software durante a implantação.
- Key Vault: as rotações de credencial irão falha, já que há uma verificação para garantir o acesso de gravação ao Key Vault fornecido pelo usuário antes de executar a rotação de credenciais.
A atualização do Cluster pode ser feita a qualquer momento. Alterar as configurações do LAW poderá causar uma breve interrupção no envio de métricas para o LAW, já que as extensões que usam o LAW podem precisar ser reinstaladas.
As etapas a seguir devem ser seguidas para usar UAMIs com Clusters do Nexus e recursos associados.
- Criar a UAMI ou UAMIs
- Criar os recursos e atribuir a UAMI aos recursos
- Criar ou atualizar o Cluster para usar Identidades Gerenciadas Atribuídas pelo Usuário e recursos fornecidos pelo usuário
Criar a UAMI ou UAMIs
- Crie a UAMI ou UAMIs para os recursos em questão. Para obter mais informações sobre como criar as identidades gerenciadas, confira Gerenciar identidades gerenciadas atribuídas pelo usuário.
Criar os recursos e atribuir a UAMI aos recursos
Configuração de Contas de Armazenamento
- Crie uma conta de armazenamento ou identifique uma conta de armazenamento existente que você deseja usar. Consulte Criar uma conta de armazenamento do Azure.
- Crie um contêiner de armazenamento de blobs na conta de armazenamento. Consulte Criar um contêiner.
- Atribua a função
Storage Blob Data Contributor
aos usuários e à UAMI, que precisam de acesso à saída do comando run-*. Confira Atribuir uma função do Azure para acesso a dados de blob. - Para limitar o acesso à Conta de Armazenamento para um conjunto selecionado redes virtuais ou de IP, confira Configurar firewalls e redes virtuais do Armazenamento do Azure.
- Os IPs para todos os usuários que executam comandos run-* precisam ser adicionados às listas de
Virtual Networks
e/ouFirewall
da Conta de Armazenamento. - Certifique-se de que
Allow Azure services on the trusted services list to access this storage account.
está selecionado emExceptions
.
- Os IPs para todos os usuários que executam comandos run-* precisam ser adicionados às listas de
Configuração dos Workspaces do Log Analytics
- Crie um Workspace do Log Analytics (LAW) ou identifique uma LAW existente que você queira usar. Confira Criar um Workspace do Log Analytics.
- Atribua a função
Log Analytics Contributor
à UAMI para o workspace do Log Analytics. Confira Gerenciar o acesso aos workspaces do Log Analytics.
Configuração do Key Vault
- Crie um Key Vault ou identifique um Key Vault existente que você queira usar. Confira Criar um Key Vault.
- Habilite o Key Vault para Controle de Acesso Baseado em Função (RBAC). Confira Habilitar permissões de RBAC do Azure no Key Vault.
- Atribua a função
Operator Nexus Key Vault Writer Service Role (Preview)
à UAMI para o Key Vault. Confira Atribuir função.- A ID de definição de função para a Função de Serviço de Gravação no Key Vault do Nexus do Operador é
44f0a1a8-6fea-4b35-980a-8ff50c487c97
. Esse formato será obrigatório se você estiver usando a linha de comando do Azure para fazer a atribuição de função.
- A ID de definição de função para a Função de Serviço de Gravação no Key Vault do Nexus do Operador é
- Ao usar uma UAMI para acessar um Key Vault, o acesso a essa identidade deve ser provisionado 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 doAFOI-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 Controle de acesso (IAM), selecione 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.
- Para limitar o acesso ao Key Vault a um conjunto selecionado de redes virtuais ou de IP, confira Configurar firewalls e redes virtuais do Azure Key Vault.
- Os IPs para todos os usuários que requerem acesso ao Key Vault precisam ser adicionados às listas de
Virtual Networks
e/ouFirewall
do Key Vault. - Certifique-se de que o
Allow trusted Microsoft services to bypass this firewall.
esteja selecionado emExceptions
.
- Os IPs para todos os usuários que requerem acesso ao Key Vault precisam ser adicionados às listas de
Criar ou atualizar o Cluster do Nexus para usar Identidades Gerenciadas Atribuídas pelo Usuário e recursos fornecidos pelo usuário
Definir as UAMIs no Cluster
Ao criar ou atualizar um Cluster com uma identidade gerenciada atribuída pelo usuário, use o parâmetro --mi-user-assigned
junto com a ID de recurso da UAMI. Se quiser especificar várias UAMIs, liste as IDs de recursos das UAMIs com um espaço entre elas. Cada UAMI usada para um Key Vault, LAW ou Conta de Armazenamento precisa ser fornecida nessa lista.
Ao criar o Cluster, você pode especificar as UAMIs em --mi-user-assigned
e também definir as configurações de recursos. Ao atualizar um Cluster para alterar uma UAMI, primeiro você deve atualizar o Cluster para definir os valores --mi-user-assigned
e, em seguida, atualizar o Cluster para modificar as configurações do recurso para usá-lo.
Configurações da Conta de Armazenamento
O constructo de dados --command-output-settings
é usado para definir a Conta de Armazenamento em que a saída do comando de execução é gravada. Consiste nos seguintes campos:
-
container-url
: a URL do contêiner da conta de armazenamento que deve ser usada pelas identidades especificadas. -
identity-resource-id
: a ID do recurso de identidade gerenciada atribuída pelo usuário a ser usada. Mutuamente exclusiva com relação a um tipo de identidade atribuída pelo sistema. -
identity-type
: o tipo de identidade gerenciada que está sendo selecionada. UseUserAssignedIdentity
.
Configurações do Workspace do Log Analytics
O constructo de dados --analytics-output-settings
é usado para definir o LAW para o qual as métricas são enviadas. Consiste nos seguintes campos:
-
analytics-workspace-id
: a ID do recurso do workspace do Analytics a ser usado pela identidade especificada. -
identity-resource-id
: a ID do recurso de identidade gerenciada atribuída pelo usuário a ser usada. Mutuamente exclusiva com relação a um tipo de identidade atribuída pelo sistema -
identity-type
: o tipo de identidade gerenciada que está sendo selecionada. UseUserAssignedIdentity
.
Configurações do Key Vault
O constructo de dados --secret-archive-settings
é usado para definir o Key Vault em que as credenciais rotacionadas são gravadas. Consiste nos seguintes campos:
-
identity-resource-id
: a ID do recurso de identidade gerenciada atribuída pelo usuário a ser usada. -
identity-type
: o tipo de identidade gerenciada que está sendo selecionada. UseUserAssignedIdentity
. -
vault-uri
: o URI do Key Vault usado como o arquivo secreto.
Exemplos de comando de criação de Cluster
Exemplo 1: esse exemplo é um comando de criação de Cluster abreviado que usa uma UAMI na Conta de Armazenamento, no LAW e no Key Vault.
az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \
...
--mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container" \
--analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
--secret-archive-settings vault-uri="https://mykv.vault.azure.net/"
identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
Exemplo 2: esse exemplo é um comando de criação de Cluster abreviado que usa duas UAMIs. A Conta de Armazenamento e o workspace do Log Analytics (LAW) usam a primeira UAMI e o Key Vault usa a segunda.
az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \
...
--mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" \
container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container" \
--analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" \
--secret-archive-settings vault-uri="https://mykv.vault.azure.net/"
identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI"
Exemplos de atualização de Cluster
Atualizar um Cluster é um processo de duas etapas. Se você precisar alterar a UAMI para um recurso, primeiro atualize o cluster para incluí-lo no campo --mi-user-assigned
e atualize o --identity-resource-id
correspondente para a Conta de Armazenamento, LAW ou Key Vault.
Se existirem vários UAMIs em uso, a lista completa de UAMIs precisa ser especificada no campo --mi-user-assigned
ao atualizar. Se uma SAMI estiver em uso no Cluster e você estiver adicionando uma UAMI, você precisará incluir --mi-system-assigned
no comando de atualização. O fato de não incluir as identidades gerenciadas existentes fará com que sejam removidas.
Para o LAW e o Key Vault, a transição dos constructos de dados existentes para os novos constructos que usam identidades gerenciadas pode ser feita por meio de uma Atualização do Cluster.
Exemplo 1: adicionar uma UAMI a um Cluster. Em seguida, atribua a UAMI às configurações de arquivo morto secreto (Key Vault). Se esse Cluster tivesse uma SAMI definida, a SAMI seria removida.
Atualização do Cluster para adicionar a UAMI myUAMI
.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
Atualização do Cluster para atribuir myUAMI
às configurações de arquivo morto secreto.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--secret-archive-settings identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
vault-uri="https://keyvaultname.vault.azure.net/"
Exemplo 2: adicionar a UAMI mySecondUAMI
a um Cluster que já tenha a myFirstUAMI
, que é preservada. Em seguida, atualize o Cluster para atribuir mySecondUAMI
às configurações de saída do comando (Conta de Armazenamento).
Atualização do Cluster para adicionar a UAMI mySecondUAMI
e, ao mesmo tempo, conservar a myFirstUAMI
.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \
Atualização do Cluster para atribuir mySecondUAMI
às configurações de saída do comando.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \
container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"
Exemplo 3: atualizar um Cluster que já tenha uma SAMI e adicionar uma UAMI. A SAMI é preservada. Em seguida, atribua a UAMI às configurações de saída do Log Analytics (LAW).
Cuidado
Alterar as configurações do LAW poderá causar uma breve interrupção no envio de métricas para o LAW, já que as extensões que usam o LAW podem precisar ser reinstaladas.
Atualização do Cluster para adicionar a UAMI mUAMI
.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
--mi-system-assigned
Atualização do Cluster para atribuir myUAMI
às configurações de saída da análise de logs.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
identity-type="UserAssignedIdentity" \
identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI"
Ver a ID da entidade de segurança para a Identidade Gerenciada Atribuída pelo Usuário
A ID do recurso de identidade pode ser encontrada selecionando "Exibir JSON" no recurso de identidade; a ID está no topo do painel que aparece. A URL do contêiner pode ser encontrada na guia Configurações -> Propriedades do recurso do contêiner.
A CLI também pode ser usada para exibir a identidade e os dados da ID de entidade de segurança associados dentro do cluster.
Exemplo:
az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>
Saída:
"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"
}
}
},
Clusters do Nexus do Operador com uma Identidade Gerenciada Atribuída pelo Sistema
O uso de uma Identidade Gerenciada Atribuída pelo Sistema (SAMI) segue um padrão diferente das UAMIs. Embora os recursos fornecidos pelo usuário (Conta de Armazenamento, LAW e Key Vault) possam ser criados antes da criação do Cluster, a SAMI não existe até que o Cluster seja criado. Os usuários precisam consultar o Cluster para obter a SAMI, atribuir os privilégios corretos à SAMI para cada recurso e, em seguida, atualizar o Cluster com as configurações dos recursos especificando a identidade atribuída pelo sistema.
Para um Cluster novo, essas etapas precisam ser concluídas antes da implantação do Cluster. Os impactos de não configurar esses recursos para um novo Cluster por ocasião da implantação são os seguintes:
- Conta de Armazenamento: as saídas do comando run-* não são gravadas na Conta de Armazenamento.
- LAW: a implantação do Cluster irá falhar, já que o LAW é necessário para instalar as extensões de software durante a implantação.
- Key Vault: as rotações de credencial irão falha, já que há uma verificação para garantir o acesso de gravação ao Key Vault fornecido pelo usuário antes de executar a rotação de credenciais.
A atualização do Cluster pode ser feita a qualquer momento. Alterar as configurações do LAW poderá causar uma breve interrupção no envio de métricas para o LAW, já que as extensões que usam o LAW podem precisar ser reinstaladas.
As etapas a seguir devem ser seguidas para usar UAMIs com Clusters do Nexus e recursos associados.
- Criar ou atualizar o Cluster com um SAMI
- Consultar o Cluster para obter a SAMI
- Criar os recursos e atribuir a SAMI aos recursos
- Atualizar o Cluster com as informações de recursos fornecidas pelo usuário
- Implantar o Cluster (se for novo)
Criar ou atualizar o Cluster com uma SAMI
Ao criar ou atualizar um Cluster com uma identidade gerenciada atribuída pelo sistema, use o parâmetro --mi-system-assigned
. O processo de criação ou atualização do Cluster gera as informações da SAMI.
Exemplo 1: esse exemplo é um comando de criação de Cluster abreviado que especifica uma SAMI.
az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \
...
--mi-system-assigned
Exemplo 2: esse exemplo atualiza um Cluster para adicionar uma SAMI. Todas as UAMIs definidas no Cluster são removidas.
az networkcloud cluster update --name "clusterName" -g "resourceGroupName" \
--mi-system-assigned
Exemplo 3: esse exemplo atualiza um Cluster para adicionar uma SAMI e conserva a UAMI existente, myUAMI
.
az networkcloud cluster update --name "clusterName" -g "resourceGroupName" \
--mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
--mi-system-assigned
Consultar o Cluster para obter a SAMI
A ID do recurso de identidade pode ser encontrada selecionando "Modo de exibição JSON" no recurso de identidade no portal do Azure.
A CLI também pode ser usada para exibir a identidade e os dados da ID de entidade de segurança associados dentro do cluster.
Observe a principalId
da identidade que é usada ao conceder acesso aos recursos.
Exemplo:
az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>
Exemplo de identidade atribuída pelo sistema:
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned"
},
Criar os recursos e atribuir a SAMI aos recursos
Configuração de Contas de Armazenamento
- Crie uma conta de armazenamento ou identifique uma conta de armazenamento existente que você deseja usar. Consulte Criar uma conta de armazenamento do Azure.
- Crie um contêiner de armazenamento de blobs na conta de armazenamento. Consulte Criar um contêiner.
- Atribua a função
Storage Blob Data Contributor
aos usuários e à SAMI que precisam de acesso à saída do comando run-*. Confira Atribuir uma função do Azure para acesso a dados de blob. -
- Para limitar o acesso à Conta de Armazenamento para um conjunto selecionado redes virtuais ou de IP, confira Configurar firewalls e redes virtuais do Armazenamento do Azure.
- Os IPs para todos os usuários que executam comandos run-* precisam ser adicionados às listas de
Virtual Networks
e/ouFirewall
da Conta de Armazenamento. - Certifique-se de que
Allow Azure services on the trusted services list to access this storage account.
está selecionado emExceptions
.
Configuração dos Workspaces do Log Analytics
- Crie um Workspace do Log Analytics (LAW) ou identifique uma LAW existente que você queira usar. Confira Criar um Workspace do Log Analytics.
- Atribua a função
Log Analytics Contributor
à SAMI para o workspace do Log Analytics. Confira Gerenciar o acesso aos workspaces do Log Analytics.
Configuração do Key Vault
- Crie um Key Vault ou identifique um Key Vault existente que você queira usar. Confira Criar um Key Vault.
- Habilite o Key Vault para Controle de Acesso Baseado em Função (RBAC). Confira Habilitar permissões de RBAC do Azure no Key Vault.
- Atribua a função
Operator Nexus Key Vault Writer Service Role (Preview)
à SAMI para o Key Vault. Confira Atribuir função.- A ID de definição de função para a Função de Serviço de Gravação no Key Vault do Nexus do Operador é
44f0a1a8-6fea-4b35-980a-8ff50c487c97
. Esse formato será obrigatório se você estiver usando a linha de comando do Azure para fazer a atribuição de função.
- A ID de definição de função para a Função de Serviço de Gravação no Key Vault do Nexus do Operador é
- Para limitar o acesso ao Key Vault a um conjunto selecionado de redes virtuais ou de IP, confira Configurar firewalls e redes virtuais do Azure Key Vault.
- Os IPs para todos os usuários que requerem acesso ao Key Vault precisam ser adicionados às listas de
Virtual Networks
e/ouFirewall
do Key Vault. - Certifique-se de que o
Allow trusted Microsoft services to bypass this firewall.
esteja selecionado emExceptions
.
- Os IPs para todos os usuários que requerem acesso ao Key Vault precisam ser adicionados às listas de
Atualizar o Cluster com as informações de recursos fornecidas pelo usuário
Configurações da Conta de Armazenamento
O constructo de dados --command-output-settings
é usado para definir a Conta de Armazenamento em que a saída do comando de execução é gravada. Consiste nos seguintes campos:
-
container-url
: a URL do contêiner da conta de armazenamento que deve ser usada pelas identidades especificadas. -
identity-resource-id
: não obrigatória ao usar uma SAMI -
identity-type
: o tipo de identidade gerenciada que está sendo selecionada. UseSystemAssignedIdentity
.
Configurações do Workspace do Log Analytics
O constructo de dados --analytics-output-settings
é usado para definir o LAW para o qual as métricas são enviadas. Consiste nos seguintes campos:
-
analytics-workspace-id
: a ID do recurso do workspace do Analytics a ser usado pela identidade especificada. -
identity-resource-id
: não obrigatória ao usar uma SAMI -
identity-type
: o tipo de identidade gerenciada que está sendo selecionada. UseSystemAssignedIdentity
.
Configurações do Key Vault
O constructo de dados --secret-archive-settings
é usado para definir o Key Vault em que as credenciais rotacionadas são gravadas. Consiste nos seguintes campos:
-
identity-resource-id
: não obrigatória ao usar uma SAMI -
identity-type
: o tipo de identidade gerenciada que está sendo selecionada. UseSystemAssignedIdentity
. -
vault-uri
: o URI do Key Vault usado como o arquivo secreto.
Exemplos de atualização de Cluster
A atualização de um Cluster segue o mesmo padrão da criação. Se precisar alterar a UAMI para um recurso, você deverá incluí-la tanto no campo --mi-user-assigned
quanto no --identity-resource-id
correspondente para a Conta de Armazenamento, LAW ou Key Vault. Se existirem vários UAMIs em uso, a lista completa de UAMIs precisa ser especificada no campo --mi-user-assigned
ao atualizar.
Para o LAW e o Key Vault, a transição dos constructos de dados existentes para os novos constructos que usam UAMIs pode ser feita por meio de uma Atualização do Cluster.
Importante
Ao atualizar um Cluster com uma UAMI ou UAMIs em uso, você precisa incluir as UAMIs existentes na lista de identidade --mi-user-assigned
ao adicionar uma SAMI ou atualizar. Se uma SAMI estiver em uso no Cluster e você estiver adicionando uma UAMI, você precisará incluir --mi-system-assigned
no comando de atualização. Não fazer isso fará com que as respectivas identidades gerenciadas sejam removidas.
Exemplo 1: adicionar ou atualizar as configurações de saída de comando (Conta de Armazenamento) para um Cluster.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"
Exemplo 2: adicionar ou atualizar as configurações de saída do Log Analytics (LAW) para um Cluster.
Cuidado
Alterar as configurações do LAW poderá causar uma breve interrupção no envio de métricas para o LAW, já que as extensões que usam o LAW podem precisar ser reinstaladas.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
identity-type="SystemAssignedIdentity" \
Exemplo 3: adicionar ou atualizar as configurações do arquivo morto secreto (Key Vault) para um Cluster.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--secret-archive-settings identity-type="SystemAssignedIdentity" \
vault-uri="https://keyvaultname.vault.azure.net/"
Exemplo 4: esse exemplo combina todos os três recursos usando uma SAMI em uma única atualização.
az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"
--analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
identity-type="SystemAssignedIdentity" \
--secret-archive-settings identity-type="SystemAssignedIdentity" \
vault-uri="https://keyvaultname.vault.azure.net/"
Atualizar identidades de Cluster por meio de APIs
As identidades gerenciadas por cluster podem ser atribuídas por meio da CLI. A desatribuição das identidades pode ser feita por meio de chamadas de API.
Observe que <APIVersion>
é a versão 2024-07-01 ou mais recente da API.
Para remover todas as identidades gerenciadas, execute:
az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
Se as identidades gerenciadas atribuídas pelo usuário e pelo sistema tiverem sido adicionadas, a atribuição do usuário poderá ser removida atualizando o
type
paraSystemAssigned
:az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
O exemplo do corpo da solicitação (uai-body.json):
{ "identity": { "type": "SystemAssigned" } }
Se as identidades gerenciadas atribuídas pelo usuário e pelo sistema tiverem sido adicionadas, a atribuição do Sistema poderá ser removida atualizando o
type
paraUserAssigned
:az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
O exemplo do corpo da solicitação (uai-body.json):
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {} } } }
Se várias identidades gerenciadas atribuídas pelo usuário tiverem sido adicionadas, uma delas poderá ser removida executando:
az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
O exemplo do corpo da solicitação (uai-body.json):
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null } } }