Kubernetes do Azure - identidade gerenciada múltipla?

Sep 10 2020

Estamos planejando implantar vários aplicativos em nosso único cluster de kubernetes do Azure, cada aplicativo terá seu próprio conjunto de recursos do Azure - por exemplo: Cofre de chaves, Armazenamento.

Estou planejando provisionar identidades gerenciadas individuais por aplicativo e fornecer acesso aos recursos relevantes.

Eu sei que a identificação do AZURE AAD POD é a maneira de configurar o pod para fazer uso da identidade gerenciada para acessar os recursos do Azure.

No entanto, como adiciono várias identidades gerenciadas ao cluster do Azure kubernetes? e isso é o direito de implementar?

Respostas

1 JoyWang Sep 11 2020 at 14:32

Como mencionei antes, não acho que você pode adicionar vários MSIs ao cluster, você pode simplesmente usar um MSI atribuído pelo sistema ou um MSI atribuído pelo usuário para isso.

Referência - usar identidades gerenciadas no serviço Kubernetes do Azure

No seu caso, se você deseja usar diferentes entidades de serviço para autenticar (essencialmente MSI também é uma entidade de serviço gerenciada pelo Azure), você pode criar vários AD Apps junto com as entidades de serviço.

Referência - Como: usar o portal para criar um aplicativo do Azure AD e entidade de serviço que pode acessar recursos

Em seguida, no código de cada aplicativo, use ClientSecretCredentialpara autenticar.

ClientSecretCredential credential1 = new ClientSecretCredentialBuilder()
     .tenantId(tenantId)
     .clientId(clientId)
     .clientSecret(clientSecret)
     .build();

Em seguida, use a credencial para criar um cliente, por exemplo, SecretClient.

SecretClient secretClient = new SecretClientBuilder()
    .vaultUrl("<your-key-vault-url>")
    .credential(credential1)
    .buildClient();