Compartilhar via


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

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.

  1. Criar a UAMI ou UAMIs
  2. Criar os recursos e atribuir a UAMI aos recursos
  3. 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

  1. 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

  1. Crie uma conta de armazenamento ou identifique uma conta de armazenamento existente que você deseja usar. Consulte Criar uma conta de armazenamento do Azure.
  2. Crie um contêiner de armazenamento de blobs na conta de armazenamento. Consulte Criar um contêiner.
  3. 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.
  4. 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.
    1. Os IPs para todos os usuários que executam comandos run-* precisam ser adicionados às listas de Virtual Networks e/ou Firewall da Conta de Armazenamento.
    2. Certifique-se de que Allow Azure services on the trusted services list to access this storage account. está selecionado em Exceptions.

Configuração dos Workspaces do Log Analytics

  1. Crie um Workspace do Log Analytics (LAW) ou identifique uma LAW existente que você queira usar. Confira Criar um Workspace do Log Analytics.
  2. 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

  1. Crie um Key Vault ou identifique um Key Vault existente que você queira usar. Confira Criar um Key Vault.
  2. Habilite o Key Vault para Controle de Acesso Baseado em Função (RBAC). Confira Habilitar permissões de RBAC do Azure no Key Vault.
  3. Atribua a função Operator Nexus Key Vault Writer Service Role (Preview) à UAMI para o Key Vault. Confira Atribuir função.
    1. 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.
  4. 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 do AFOI-NC-MGMT-PME-PROD. É uma limitação conhecida da plataforma que será tratada no futuro.
    1. Abra o portal do Azure e localize a identidade atribuída pelo usuário em questão.
    2. Em Controle de acesso (IAM), selecione Adicionar atribuição de função.
    3. Selecione a Função: Operador de Identidade Gerenciada. (Consulte as permissões que a função fornece managed-identity-operator).
    4. Atribua acesso a: Usuário, grupo ou entidade de serviço.
    5. Selecione Membro: aplicativo AFOI-NC-MGMT-PME-PROD.
    6. Revise e conclua a atribuição.
  5. 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.
    1. Os IPs para todos os usuários que requerem acesso ao Key Vault precisam ser adicionados às listas de Virtual Networks e/ou Firewall do Key Vault.
    2. Certifique-se de que o Allow trusted Microsoft services to bypass this firewall. esteja selecionado em Exceptions.

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. Use UserAssignedIdentity.

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. Use UserAssignedIdentity.

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. Use UserAssignedIdentity.
  • 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.

  1. Criar ou atualizar o Cluster com um SAMI
  2. Consultar o Cluster para obter a SAMI
  3. Criar os recursos e atribuir a SAMI aos recursos
  4. Atualizar o Cluster com as informações de recursos fornecidas pelo usuário
  5. 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

  1. Crie uma conta de armazenamento ou identifique uma conta de armazenamento existente que você deseja usar. Consulte Criar uma conta de armazenamento do Azure.
  2. Crie um contêiner de armazenamento de blobs na conta de armazenamento. Consulte Criar um contêiner.
  3. 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.
    1. 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.
    2. Os IPs para todos os usuários que executam comandos run-* precisam ser adicionados às listas de Virtual Networks e/ou Firewall da Conta de Armazenamento.
    3. Certifique-se de que Allow Azure services on the trusted services list to access this storage account. está selecionado em Exceptions.

Configuração dos Workspaces do Log Analytics

  1. Crie um Workspace do Log Analytics (LAW) ou identifique uma LAW existente que você queira usar. Confira Criar um Workspace do Log Analytics.
  2. 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

  1. Crie um Key Vault ou identifique um Key Vault existente que você queira usar. Confira Criar um Key Vault.
  2. Habilite o Key Vault para Controle de Acesso Baseado em Função (RBAC). Confira Habilitar permissões de RBAC do Azure no Key Vault.
  3. Atribua a função Operator Nexus Key Vault Writer Service Role (Preview) à SAMI para o Key Vault. Confira Atribuir função.
    1. 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.
  4. 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.
    1. Os IPs para todos os usuários que requerem acesso ao Key Vault precisam ser adicionados às listas de Virtual Networks e/ou Firewall do Key Vault.
    2. Certifique-se de que o Allow trusted Microsoft services to bypass this firewall. esteja selecionado em Exceptions.

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. Use SystemAssignedIdentity.

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. Use SystemAssignedIdentity.

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. Use SystemAssignedIdentity.
  • 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 para SystemAssigned:

    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 para UserAssigned:

    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
      }
    }
    }