Compartilhar via


Tutorial: Usar as referências do Key Vault em um aplicativo Java Spring

Neste tutorial, você aprenderá a usar o serviço de Configuração de Aplicativos do Azure junto com o Azure Key Vault. A Configuração de Aplicativos e o Key Vault são serviços complementares usados lado a lado na maioria das implantações de aplicativo.

A Configuração de Aplicativos ajuda você a usar os serviços juntos por meio da criação de chaves que fazem referência a valores armazenados no Key Vault. Quando a Configuração de Aplicativos cria essas chaves, ela armazena os URIs de valores do Key Vault em vez dos valores propriamente ditos.

Seu aplicativo usa o provedor do cliente da Configuração de Aplicativos para recuperar referências do Key Vault, assim como faz para quaisquer outras chaves armazenadas na Configuração de Aplicativos. Nesse caso, os valores armazenados na Configuração de Aplicativos são URIs que fazem referência aos valores no Key Vault. Eles não são valores ou credenciais do Key Vault. Já que o provedor do cliente reconhece as chaves como referências do Key Vault, ele usa o Key Vault para recuperar os valores delas.

Seu aplicativo é responsável por autenticar corretamente, tanto na Configuração de Aplicativos quanto no Key Vault. Os dois serviços não se comunicam diretamente.

Este tutorial mostra a você como implementar referências do Key Vault em seu código. Ele se baseia no aplicativo Web introduzido no início rápido. Antes de continuar, primeiro conclua Criar um aplicativo Java Spring com a Configuração de Aplicativos.

Você pode usar qualquer editor de código para executar as etapas deste tutorial. Por exemplo, o Visual Studio Code é um editor de código multiplataforma disponível para os sistemas operacionais Windows, macOS e Linux.

Neste tutorial, você aprenderá como:

  • Criar uma chave da Configuração de Aplicativos que referencia um valor armazenado no Key Vault.
  • Acessar o valor dessa chave em um aplicativo Java Spring.

Pré-requisitos

Criar um cofre de chaves

  1. Entre no portal do Azure e selecione Criar um recurso.

  2. Digite Key Vault na caixa de pesquisa. Na lista de resultados, selecione Key Vault.

  3. Na página do Key Vault , selecione Criar.

  4. Na página Criar um cofre de chaves , insira as seguintes informações:

    • Para Assinatura: selecione uma assinatura.
    • Para o grupo de recursos: insira o nome de um grupo de recursos existente ou selecione Criar novo e insira um nome de grupo de recursos.
    • Para Nome do Key Vault: insira um nome exclusivo.
    • Para Região: selecione um local.
  5. Para as outras opções, use os valores padrão.

  6. Selecione Examinar + criar.

  7. Depois que o sistema validar e exibir suas entradas, selecione Criar.

Nesse ponto, sua conta do Azure é a única autorizada a acessar esse novo cofre.

Adicionar um segredo ao Key Vault

Adicione um segredo ao cofre para testar a recuperação do Key Vault. O segredo é chamado Mensagem e seu valor é "Olá do Key Vault".

  1. No menu de recursos do Key Vault, selecione Objetos>Segredos.

  2. Selecione Gerar/Importar.

  3. Na caixa de diálogo Criar um segredo , insira os seguintes valores:

    • Para opções de carregamento: insira Manual.
    • Nome: Digite Mensagem.
    • Para Valor do segredo: Insira Hello from Key Vault.
  4. Para as outras opções, use os valores padrão.

  5. Selecione Criar.

Adicionar uma referência do Key Vault à Configuração de Aplicativos

  1. Entre no portal do Azure. Selecione Todos os recursos e selecione o repositório de Configuração de Aplicativos.

  2. Selecione Gerenciador de Configurações.

  3. Clique em + Criar>Referência do Key Vault e especifique os seguintes valores:

    • Chave: Insira /application/config.keyVaultMessage.
    • Rótulo: deixe esse valor em branco.
    • Assinatura, grupo de recursos e cofre de chaves: insira os valores correspondentes ao cofre de chaves que você criou na seção anterior.
    • Segredo: selecione o segredo chamado Mensagem criado na seção anterior.

Permitir ao aplicativo acesso ao Key Vault

Seu aplicativo usa DefaultAzureCredential para se autenticar na Configuração de Aplicativos e no Key Vault. Essa credencial funciona automaticamente com identidades gerenciadas no Azure e com suas credenciais de desenvolvedor localmente.

  1. Conceda o acesso da sua identidade ao Key Vault. Atribua a função de usuário de segredos do Key Vault à sua conta de usuário ou identidade gerenciada:

    az role assignment create --role "Key Vault Secrets User" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name> --assignee <your-azure-ad-user-or-managed-identity>
    
  2. Permita acesso da sua identidade à Configuração de Aplicativo. Atribua a função Leitor de Dados de Configuração de Aplicativo :

    az role assignment create --role "App Configuration Data Reader" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name>/providers/Microsoft.AppConfiguration/configurationStores/<your-app-configuration-store> --assignee <your-azure-ad-user-or-managed-identity>
    

Atualizar o código para usar uma referência do Key Vault

  1. Crie uma variável de ambiente chamada APP_CONFIGURATION_ENDPOINT. Defina seu valor como o ponto de extremidade do repositório de Configuração de Aplicativos. Você pode encontrar o ponto de extremidade na folha Chaves de Acesso no portal do Azure. Reinicie o prompt de comando para permitir que a alteração entre em vigor.

  2. Abra o arquivo de configuração na pasta recursos. Atualize esse arquivo para usar o valor APP_CONFIGURATION_ENDPOINT. Remova todas as referências a uma cadeia de conexão neste arquivo.

spring:
    config:
        import: azureAppConfiguration
    cloud:
        azure:
            appconfiguration:
                stores:
                    - endpoint: ${APP_CONFIGURATION_ENDPOINT}

Observação

Você também pode usar as configurações globais do Azure Spring Cloud para se conectar ao Key Vault.

  1. Abra MyProperties.java. Adicione uma nova variável chamada keyVaultMessage:

    private String keyVaultMessage;
    
    public String getKeyVaultMessage() {
        return keyVaultMessage;
    }
    
    public void setKeyVaultMessage(String keyVaultMessage) {
        this.keyVaultMessage = keyVaultMessage;
    }
    
  2. Abra HelloController.java. Atualize o método getMessage para incluir a mensagem recuperada do Key Vault.

    @GetMapping
    public String getMessage() {
        return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage();
    }
    
  3. Compile o aplicativo Spring Boot com Maven e execute-o, por exemplo:

    mvn clean package
    mvn spring-boot:run
    
  4. Depois que o aplicativo estiver em execução, use curl para testar o aplicativo, por exemplo:

    curl -X GET http://localhost:8080/
    

    Você verá a mensagem inserida no repositório de Configuração de Aplicativos. Você também verá a mensagem que inseriu no Key Vault.

Limpar os recursos

Se não deseja continuar usando os recursos criados neste artigo, exclua o grupo de recursos que você criou aqui para evitar encargos.

Importante

A exclusão de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente grupo de recursos ou recursos incorretos. Se tiver criado os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que você deseja manter, exclua cada um individualmente do respectivo painel em vez de excluir o grupo de recursos.

  1. Entre no portal do Azure e selecione Grupos de recursos.
  2. Na caixa Filtrar por nome..., digite o nome do seu grupo de recursos.
  3. Na lista de resultados, selecione o nome do grupo de recursos para conferir uma visão geral.
  4. Selecione Excluir grupo de recursos.
  5. Você receberá uma solicitação para confirmar a exclusão do grupo de recursos. Insira o nome do grupo de recursos para confirmar e selecione Excluir.

Após alguns instantes, o grupo de recursos e todos os recursos dele são excluídos.

Próximas etapas

Neste tutorial, você criou uma chave da Configuração de Aplicativos que referencia um valor armazenado no Key Vault. Para obter mais perguntas, confira a documentação de referência, ela tem todos os detalhes sobre como funciona a biblioteca de Configuração de Aplicativos do Azure do Spring Cloud. Para saber como usar os sinalizadores de recurso em seu aplicativo Java Spring, prossiga para o próximo tutorial.