Partilhar via


Suporte do Azure Operator Nexus Cluster para identidades gerenciadas e recursos fornecidos pelo usuário

Para melhorar a segurança da plataforma Operator Nexus, as identidades gerenciadas agora são suportadas para Operator Nexus Clusters. As identidades gerenciadas fornecem uma maneira segura para os aplicativos acessarem outros recursos do Azure e eliminam a necessidade de os usuários gerenciarem credenciais. Além disso, o Operator Nexus agora tem um modelo de recurso fornecido pelo usuário. Além de maior segurança, essa mudança proporciona uma experiência de usuário consistente em toda a plataforma.

As identidades gerenciadas são usadas com os seguintes recursos de usuário fornecidos no Operator Nexus Clusters:

  • Contas de armazenamento usadas para a saída de comandos run-* bare metal.
  • Cofres de chaves usados para rotação de credenciais.
  • Espaços de trabalho do Log Analytics usados para capturar algumas métricas.

Para saber mais sobre identidades gerenciadas no Azure, consulte Identidades gerenciadas para recursos do Azure. Os Clusters Nexus do operador suportam várias Identidades Gerenciadas Atribuídas ao Usuário (UAMI) ou uma identidade gerenciada atribuída ao sistema (SAMI).

Embora um usuário possa optar por usar qualquer tipo de identidade gerenciada, os UAMIs são recomendados. Eles permitem que os usuários pré-configurem recursos com o acesso apropriado ao UAMI antes da criação ou atualização do Operator Nexus Cluster. O mesmo UAMI pode ser usado para todos os recursos, ou se os usuários quiserem acesso refinado, eles podem definir UAMIs para cada recurso.

Uma vez adicionada, a identidade só pode ser removida por meio da chamada de API no momento. Para obter informações sobre como usar a API para atualizar identidades gerenciadas de cluster, consulte Atualizar identidades de cluster. Esta seção inclui informações sobre como excluir as identidades gerenciadas.

Pré-requisitos

Nota

A funcionalidade de identidade gerenciada para o Log Analytics Workspace e o Key Vault existe com a API 2024-10-01-preview e estará disponível com a API GA 2025-02-01.

Clusters Nexus do operador com identidades gerenciadas atribuídas pelo usuário (UAMI)

É uma prática recomendada definir primeiro todos os recursos fornecidos pelo usuário (Conta de Armazenamento, LAW e Cofre de Chaves), as identidades gerenciadas associadas a esses recursos e, em seguida, atribuir à identidade gerenciada o acesso apropriado ao recurso. Se essas etapas não forem concluídas antes da criação do Cluster, elas precisarão ser concluídas antes da implantação do Cluster.

Os impactos de não configurar esses recursos por tempo de implantação para um novo Cluster são os seguintes:

  • Conta de armazenamento: as saídas do comando run-* não podem ser gravadas na conta de armazenamento.
  • LAW: A implantação do cluster falha, pois a LAW é necessária para instalar extensões de software durante a implantação.
  • Cofre de Chaves: as rotações de credenciais falham quando há uma verificação para garantir o acesso de gravação ao Cofre de Chaves 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 pode causar uma breve interrupção no envio de métricas para o LAW, pois as extensões que usam o LAW podem precisar ser reinstaladas.

As etapas a seguir devem ser seguidas para usar UAMIs com Nexus Clusters e recursos associados.

  1. Criar o UAMI ou UAMIs
  2. Crie os recursos e atribua o UAMI aos recursos
  3. Criar ou atualizar o Cluster para usar as Identidades Gerenciadas Atribuídas pelo Usuário e os recursos fornecidos pelo usuário

Criar o UAMI ou UAMIs

  1. Crie o UAMI ou UAMIs para os recursos em questão. Para obter mais informações sobre como criar as identidades gerenciadas, consulte Gerenciar identidades gerenciadas atribuídas pelo usuário.

Crie os recursos e atribua o 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 blob na conta de armazenamento. Consulte Criar um contêiner.
  3. Atribua a Storage Blob Data Contributor função aos usuários e ao UAMI que precisam acessar a saída do comando run-*. Veja Atribuir uma função do Azure para acesso aos dados de blobs.
  4. Para limitar o acesso à Conta de Armazenamento a um conjunto selecionado de redes IP ou virtuais, consulte Configurar firewalls de Armazenamento do Azure e redes virtuais.
    1. Os IPs de todos os usuários que executam comandos run-* precisam ser adicionados às listas e/ou Firewall da Conta de Virtual Networks Armazenamento.
    2. Certifique-se de que Allow Azure services on the trusted services list to access this storage account. está selecionado em Exceptions está selecionado.

Configuração dos espaços de trabalho do Log Analytics

  1. Crie um espaço de trabalho do Log Analytics (LAW) ou identifique um LAW existente que você deseja usar. Consulte Criar um espaço de trabalho do Log Analytics.
  2. Atribua a Log Analytics Contributor função ao UAMI para o espaço de trabalho de análise de log. Consulte Gerenciar o acesso aos espaços de trabalho do Log Analytics.

Configuração do Cofre da Chave

  1. Crie um Cofre da Chave ou identifique um Cofre da Chave existente que você deseja usar. Consulte Criar um cofre de chaves.
  2. Habilite o Cofre de Chaves para Controle de Acesso Baseado em Função (RBAC). Consulte Habilitar permissões do Azure RBAC no Cofre da Chave.
  3. Atribua a Operator Nexus Key Vault Writer Service Role (Preview) função ao UAMI para o Cofre da Chave. Consulte Atribuir função.
    1. O ID de definição de função para a Função de Serviço do Gravador do Cofre de Chave do Operador Nexus é 44f0a1a8-6fea-4b35-980a-8ff50c487c97. Esse formato é necessário se estiver usando a linha de comando do Azure para fazer a atribuição de função.
  4. Ao usar um UAMI para acessar um Cofre de Chaves, o acesso a essa identidade deve ser provisionado para a plataforma Nexus. Especificamente, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action a permissão precisa ser adicionada à identidade atribuída pelo usuário para o ID do AFOI-NC-MGMT-PME-PROD Microsoft Entra. É uma limitação conhecida da plataforma que será abordada 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 Função: Operador de identidade gerenciado. (Consulte as permissões que a função fornece ao operador de identidade gerenciada).
    4. Atribua acesso a: Usuário, grupo ou entidade de serviço.
    5. Selecione Membro: AFOI-NC-MGMT-PME-PROD application.
    6. Rever e atribuir.
  5. Para limitar o acesso ao Cofre da Chave a um conjunto selecionado de redes IP ou virtuais, consulte Configurar firewalls e redes virtuais do Cofre da Chave do Azure.
    1. Os IPs para todos os usuários que precisam acessar o Cofre da Chave precisam ser adicionados às listas e/ou Firewall do Cofre da Virtual Networks Chave.
    2. Certifique-se de que a Allow trusted Microsoft services to bypass this firewall. opção em baixo Exceptions está selecionada.

Criar ou atualizar o Nexus Cluster para usar as Identidades Gerenciadas Atribuídas pelo Usuário e os recursos fornecidos pelo usuário

Definir o(s) UAMI(S) no cluster

Ao criar ou atualizar um Cluster com uma identidade gerenciada atribuída ao usuário, use o --mi-user-assigned parâmetro junto com a ID do recurso do UAMI. Se desejar especificar vários UAMIs, liste os IDs de recursos dos UAMIs com um espaço entre eles. Cada UAMI usado para um Cofre de Chaves, LAW ou Conta de Armazenamento deve ser fornecido nesta lista.

Ao criar o Cluster, você pode especificar os UAMIs e --mi-user-assigned também definir as configurações de recursos. Ao atualizar um Cluster para alterar um UAMI, você deve primeiro atualizar o Cluster para definir os --mi-user-assigned valores e, em seguida, atualizar o Cluster para modificar as configurações de recursos para usá-lo.

Configurações da Conta de Armazenamento

A --command-output-settings construção de dados é usada para definir a Conta de Armazenamento onde a saída do comando run é gravada. Consiste nos seguintes domínios:

  • container-url: A URL do contêiner da conta de armazenamento que deve ser usada pelas identidades especificadas.
  • identity-resource-id: O ID de recurso de identidade gerenciado atribuído ao usuário a ser usado. Mutuamente exclusivo com um tipo de identidade atribuído ao sistema.
  • identity-type: O tipo de identidade gerenciada que está sendo selecionada. UserAssignedIdentityUtilize.

Configurações do espaço de trabalho do Log Analytics

A --analytics-output-settings construção de dados é usada para definir a LEI para onde as métricas são enviadas. Consiste nos seguintes domínios:

  • analytics-workspace-id: O ID do recurso do espaço de trabalho de análise que deve ser usado pela identidade especificada.
  • identity-resource-id: O ID de recurso de identidade gerenciado atribuído ao usuário a ser usado. Mutuamente exclusivo com um tipo de identidade atribuído ao sistema
  • identity-type: O tipo de identidade gerenciada que está sendo selecionada. UserAssignedIdentityUtilize.

Configurações do Cofre da Chave

A --secret-archive-settings construção de dados é usada para definir o Cofre da Chave onde as credenciais giradas são gravadas. Consiste nos seguintes domínios:

  • identity-resource-id: O ID de recurso de identidade gerenciado atribuído ao usuário a ser usado.
  • identity-type: O tipo de identidade gerenciada que está sendo selecionada. UserAssignedIdentityUtilize.
  • vault-uri: O URI do cofre de chaves usado como arquivo secreto.

Exemplos de comandos de criação de cluster

Exemplo 1: Este exemplo é um comando Cluster create abreviado que usa um UAMI na Conta de Armazenamento, LAW e Cofre de Chaves.

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: Este exemplo é um comando Cluster create abreviado que usa dois UAMIs. A Conta de Armazenamento e a LAW usam o primeiro UAMI e o Cofre da Chave usa o segundo.

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

A atualização de um cluster é um processo de duas etapas. Se você precisar alterar o UAMI de um recurso, primeiro atualize o cluster para incluí-lo no campo e, em --mi-user-assigned seguida, atualize o correspondente --identity-resource-id para a Conta de Armazenamento, LAW ou Cofre da Chave.

Se houver vários UAMIs em uso, a lista completa de UAMIs deve ser especificada no campo durante a --mi-user-assigned atualização. Se um SAMI estiver em uso no Cluster e você estiver adicionando um UAMI, deverá incluir --mi-system-assigned no comando update. A falha na inclusão de identidades gerenciadas existentes faz com que elas sejam removidas.

Para LAW e Key Vault, a transição das construções de dados existentes para as novas construções que usam identidades gerenciadas pode ser feita por meio de uma Atualização de Cluster.

Exemplo 1: Adicionar um UAMI a um cluster. Em seguida, atribua o UAMI às configurações de arquivo secreto (Cofre de Chaves). Se este cluster tivesse um SAMI definido, o SAMI seria removido.

Atualização de cluster para adicionar o 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 de cluster para atribuir myUAMI às configurações de arquivo 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 UAMI mySecondUAMI a um cluster que já tem myFirstUAMI e que é mantido. Em seguida, atualize o Cluster para atribuir mySecondUAMI as configurações de saída do comando (Conta de Armazenamento).

Atualização de cluster para adicionar o UAMI mySecondUAMI mantendo myFirstUAMIo .

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 de 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: Atualize um cluster que já tenha um SAMI e adicione um UAMI. O SAMI é mantido. Em seguida, atribua o UAMI às configurações de saída de análise de log (LAW).

Atenção

Alterar as configurações do LAW pode causar uma breve interrupção no envio de métricas para o LAW, pois as extensões que usam o LAW podem precisar ser reinstaladas.

Atualização de cluster para adicionar o 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 de cluster para atribuir myUAMI às configurações de saída da análise de log.

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"

Exibir a ID principal da Identidade Gerenciada Atribuída ao Usuário

O ID do recurso de identidade pode ser encontrado selecionando "Visualização JSON" no recurso de identidade; o ID está na parte superior do painel que aparece. A URL do contêiner pode ser encontrada na guia Configurações -> Propriedades do recurso de contêiner.

A CLI também pode ser usada para exibir a identidade e os dados de ID principal 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 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 dos UAMIs. Embora os recursos fornecidos pelo usuário (Conta de Armazenamento, LAW e Cofre de Chaves) possam ser criados antes da criação do Cluster, o SAMI não existe até que o Cluster seja criado. Os usuários precisam consultar o Cluster para obter o SAMI, atribuir os privilégios corretos ao SAMI para cada recurso e, em seguida, atualizar o Cluster com as configurações dos recursos especificando a identidade atribuída ao sistema.

Para um novo Cluster, essas etapas precisam ser concluídas antes da implantação do Cluster. Os impactos de não configurar esses recursos por tempo de implantação para um novo Cluster são os seguintes:

  • Conta de armazenamento: as saídas do comando run-* não podem ser gravadas na conta de armazenamento.
  • LAW: A implantação do cluster falha, pois a LAW é necessária para instalar extensões de software durante a implantação.
  • Cofre de Chaves: as rotações de credenciais falham quando há uma verificação para garantir o acesso de gravação ao Cofre de Chaves 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 pode causar uma breve interrupção no envio de métricas para o LAW, pois as extensões que usam o LAW podem precisar ser reinstaladas.

As etapas a seguir devem ser seguidas para usar UAMIs com Nexus Clusters e recursos associados.

  1. Criar ou atualizar o cluster com um SAMI
  2. Consultar o cluster para obter o SAMI
  3. Crie os recursos e atribua o SAMI aos recursos
  4. Atualizar o cluster com as informações de recursos fornecidas pelo usuário
  5. Implantar o cluster (se novo)

Criar ou atualizar o cluster com um SAMI

Ao criar ou atualizar um Cluster com uma identidade gerenciada atribuída ao sistema, use o --mi-system-assigned parâmetro. O processo de criação ou atualização do cluster gera as informações do SAMI.

Exemplo 1: Este exemplo é um comando Cluster create abreviado que especifica um SAMI.

az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \

    ...

    --mi-system-assigned

Exemplo 2: Este exemplo atualiza um Cluster para adicionar um SAMI. Todos os UAMIs definidos no cluster são removidos.

az networkcloud cluster update --name "clusterName" -g "resourceGroupName" \
    --mi-system-assigned

Exemplo 3: Este exemplo atualiza um cluster para adicionar um SAMI e mantém o 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 o SAMI

A ID do recurso de identidade pode ser encontrada selecionando "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 de ID principal associados dentro do cluster.

Observe a principalId 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 ao sistema:

    "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
    },

Crie os recursos e atribua o 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 blob na conta de armazenamento. Consulte Criar um contêiner.
  3. Atribua a Storage Blob Data Contributor função aos usuários e ao SAMI que precisam acessar a saída do comando run-*. Veja Atribuir uma função do Azure para acesso aos dados de blobs.
    1. Para limitar o acesso à Conta de Armazenamento a um conjunto selecionado de redes IP ou virtuais, consulte Configurar firewalls de Armazenamento do Azure e redes virtuais.
    2. Os IPs de todos os usuários que executam comandos run-* precisam ser adicionados às listas e/ou Firewall da Conta de Virtual Networks Armazenamento.
    3. Certifique-se de que Allow Azure services on the trusted services list to access this storage account. está selecionado em Exceptions está selecionado.

Configuração dos espaços de trabalho do Log Analytics

  1. Crie um espaço de trabalho do Log Analytics (LAW) ou identifique um LAW existente que você deseja usar. Consulte Criar um espaço de trabalho do Log Analytics.
  2. Atribua a Log Analytics Contributor função ao SAMI para o espaço de trabalho de análise de log. Consulte Gerenciar o acesso aos espaços de trabalho do Log Analytics.

Configuração do Cofre da Chave

  1. Crie um Cofre da Chave ou identifique um Cofre da Chave existente que você deseja usar. Consulte Criar um cofre de chaves.
  2. Habilite o Cofre de Chaves para Controle de Acesso Baseado em Função (RBAC). Consulte Habilitar permissões do Azure RBAC no Cofre da Chave.
  3. Atribua a Operator Nexus Key Vault Writer Service Role (Preview) função ao SAMI do Cofre da Chave. Consulte Atribuir função.
    1. O ID de definição de função para a Função de Serviço do Gravador do Cofre de Chave do Operador Nexus é 44f0a1a8-6fea-4b35-980a-8ff50c487c97. Esse formato é necessário se estiver usando a linha de comando do Azure para fazer a atribuição de função.
  4. Para limitar o acesso ao Cofre da Chave a um conjunto selecionado de redes IP ou virtuais, consulte Configurar firewalls e redes virtuais do Cofre da Chave do Azure.
    1. Os IPs para todos os usuários que precisam acessar o Cofre da Chave precisam ser adicionados às listas e/ou Firewall do Cofre da Virtual Networks Chave.
    2. Certifique-se de que a Allow trusted Microsoft services to bypass this firewall. opção em baixo Exceptions está selecionada.

Atualizar o cluster com as informações de recursos fornecidas pelo usuário

Configurações da Conta de Armazenamento

A --command-output-settings construção de dados é usada para definir a Conta de Armazenamento onde a saída do comando run é gravada. Consiste nos seguintes domínios:

  • container-url: A URL do contêiner da conta de armazenamento que deve ser usada pelas identidades especificadas.
  • identity-resource-id: Não é necessário ao usar um SAMI
  • identity-type: O tipo de identidade gerenciada que está sendo selecionada. SystemAssignedIdentityUtilize.

Configurações do espaço de trabalho do Log Analytics

A --analytics-output-settings construção de dados é usada para definir a LEI para onde as métricas são enviadas. Consiste nos seguintes domínios:

  • analytics-workspace-id: O ID do recurso do espaço de trabalho de análise que deve ser usado pela identidade especificada.
  • identity-resource-id: Não é necessário ao usar um SAMI
  • identity-type: O tipo de identidade gerenciada que está sendo selecionada. SystemAssignedIdentityUtilize.

Configurações do Cofre da Chave

A --secret-archive-settings construção de dados é usada para definir o Cofre da Chave onde as credenciais giradas são gravadas. Consiste nos seguintes domínios:

  • identity-resource-id: Não é necessário ao usar um SAMI
  • identity-type: O tipo de identidade gerenciada que está sendo selecionada. SystemAssignedIdentityUtilize.
  • vault-uri: O URI do cofre de chaves usado como arquivo secreto.

Exemplos de atualização de cluster

A atualização de um cluster segue o mesmo padrão de criação. Se você precisar alterar o UAMI para um recurso, deverá incluí-lo no --mi-user-assigned campo e correspondente --identity-resource-id para a Conta de Armazenamento, LAW ou Cofre de Chaves. Se houver vários UAMIs em uso, a lista completa de UAMIs deve ser especificada no campo durante a --mi-user-assigned atualização.

Para LAW e Key Vault, a transição das construções de dados existentes para as novas construções que usam UAMI pode ser feita por meio de uma Atualização de Cluster.

Importante

Ao atualizar um cluster com um UAMI ou UAMIs em uso, você deve incluir os UAMIs existentes na --mi-user-assigned lista de identidade ao adicionar um SAMI ou atualizar. Se um SAMI estiver em uso no Cluster e você estiver adicionando um UAMI, deverá incluir --mi-system-assigned no comando update. Se isso não for feito, as respetivas identidades gerenciadas serão removidas.

Exemplo 1: Adicionar ou atualizar as configurações de saída do 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 de análise de log (LAW) para um Cluster.

Atenção

Alterar as configurações do LAW pode causar uma breve interrupção no envio de métricas para o LAW, pois 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 de arquivo secreto (Cofre de Chaves) 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: Este exemplo combina todos os três recursos usando um SAMI em uma 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 via CLI. A desatribuição das identidades pode ser feita por meio de chamadas de API. Nota, <APIVersion> é a versão da API 2024-07-01 ou mais recente.

  • 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, as identidades atribuídas pelo usuário poderão ser removidas 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 corpo da solicitação (uai-body.json exemplo:

    {
    "identity": {
          "type": "SystemAssigned"
    }
    }
    
  • Se as identidades gerenciadas atribuídas pelo usuário e pelo sistema tiverem sido adicionadas, as identidades atribuídas pelo sistema poderão ser removidas 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 corpo da solicitação (uai-body.json exemplo:

    {
    "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 forem 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 corpo da solicitação (uai-body.json exemplo:

    {
    "identity": {
          "type": "UserAssigned",
      "userAssignedIdentities": {
      	"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null
      }
    }
    }