---
title: "Armazenamento de chaves em Azure Key Vault"
description: "Uso do Azure Key Vault como repositório de chaves de AC do Amplia: HSM na nuvem com validação FIPS 140-2 Nível 2, compatível com todas as plataformas."
canonical: "https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/azure"
locale: "pt-BR"
product: "Amplia"
last_updated: "2026-10-12"
---

# Armazenamento de chaves em Azure Key Vault

> **Observação**
>
> Os repositórios de chaves do Azure Key Vault são compatíveis com todas as plataformas suportadas.

O [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) pode ser considerado um HSM na nuvem. As chaves são armazenadas em HSMs com
validação FIPS 140-2 Nível 2, por um custo relativamente baixo, de cerca de 5 dólares por mês por chave. Esse serviço da Microsoft viabilizou o uso de HSMs
em projetos que, de outra forma, não teriam o orçamento necessário.

> **Dica**
>
> A instância do Amplia na nuvem da Lacuna Software (oferta SaaS) armazena todas as chaves de AC no Azure Key Vault, e recomendamos fortemente o seu uso
> tanto em instâncias instaladas na nuvem quanto em servidores locais.

## Procedimento

Para configurar um repositório de chaves do Azure Key Vault no Amplia, entre no [portal do Azure](https://portal.azure.com) e faça as configurações a seguir:

### Criando um aplicativo e um segredo de autenticação

Crie um aplicativo correspondente à sua instância do Amplia:

1. Na opção **Microsoft Entra ID**, acesse **App registrations** e clique em **New registration**
1. Informe um nome para o aplicativo
1. Mantenha os demais campos com as opções padrão
1. Clique em **Register**

Depois que o aplicativo for criado, anote o **Application (client) ID**.

Gere um segredo para identificação do aplicativo:

1. Nas configurações do aplicativo, clique em **Certificates &amp; secrets**
1. Em **Client secrets**, clique em **New client secret**
1. Preencha uma descrição e escolha uma validade
1. Clique em **Add**
1. **Copie o valor exibido** na coluna **Value** (não será possível recuperar esse valor depois!)

> **Aviso**
>
> O client secret sempre expira (a validade máxima disponível é de 24 meses). Antes que ele expire, gere um novo e atualize a configuração
> **AppKey**; caso contrário, o Amplia deixará de conseguir acessar o Key Vault. Para evitar isso, você pode se autenticar com um
> certificado (veja a configuração **CertThumb** abaixo).

### Criando o Key Vault

Crie o Key Vault (pule esta parte se quiser usar um Key Vault existente):

1. Na opção **Key vaults**, clique em **Create**
1. Preencha os dados de acordo com a sua infraestrutura
1. Na opção *Pricing tier*, escolha **Premium** para poder gerar chaves armazenadas em HSM
1. Na aba **Access configuration**, mantenha o *Permission model* padrão, **Azure role-based access control**
1. Clique em **Review + create**
1. Clique em **Create**

Quando a criação do Key Vault terminar, clique em **Go to resource**. Em seguida, anote o **Vault URI** do Key Vault, exibido na página
*Overview* (ex.: `https://my-key-vault.vault.azure.net/`).

### Concedendo permissões ao aplicativo

A forma de conceder permissões ao aplicativo depende do *Permission model* do Key Vault, exibido em **Settings** &gt; **Access configuration**.
Os Key Vaults novos usam **Azure role-based access control** por padrão. Key Vaults mais antigos podem usar **Vault access policy**.

Se o Key Vault usar **Azure role-based access control**:

1. No Key Vault, clique em **Access control (IAM)** e, depois, em **Add** &gt; **Add role assignment**
1. Na aba **Role**, selecione **Key Vault Crypto Officer** e clique em **Next**
1. Na aba **Members**, escolha **User, group, or service principal** e clique em **Select members**
1. Selecione o aplicativo criado e clique em **Select**
1. Clique em **Review + assign** e, depois, em **Review + assign** novamente para confirmar

> **Observação**
>
> O role **Key Vault Crypto Officer** é necessário porque o Amplia cria chaves no Key Vault. O role **Key Vault Crypto User** não permite
> criar chaves.

Se o Key Vault usar **Vault access policy**:

1. Nas configurações do Key Vault, clique em **Access policies** e, depois, em **Create**
1. Na aba **Permissions**, sem usar um template, selecione apenas as seguintes *Key permissions*: **Get**, **List**, **Create**, **Verify** e **Sign**. Depois, clique em **Next**
1. Na aba **Principal**, selecione o aplicativo criado e clique em **Next**
1. Clique em **Next** até chegar à etapa de revisão e, depois, clique em **Create**

### Configuração do Amplia

Edite o seu arquivo de configuração JSON ou as configurações do seu App Service e adicione à seção **KeyStores** uma seção com um nome
que identifique o Key Vault (veja o exemplo abaixo), com as seguintes configurações:

* **Type**: `AzureKeyVault`
* **Endpoint**: Vault URI do Key Vault (exibido na página *Overview* do Key Vault) -- ex.: https://my-pki.vault.azure.net/
* **AppId**: ID do aplicativo usado para autenticação no Azure
* **AppKey**: chave secreta do aplicativo usada para autenticação no Azure (para mais segurança, omita este valor e informe o `CertThumb` em vez dele)
* **CertThumb**: thumbprint do certificado usado para autenticação no Azure (em hexadecimal, como fornecido pelo portal do Azure)
* **TenantId** (opcional, Amplia 5.0 ou mais recente): ID do tenant do Microsoft Entra no qual autenticar. Se omitido, o tenant é obtido do desafio de autenticação do Key Vault
* **UseManagedIdentity** (Amplia 5.0 ou mais recente): defina como `true` para autenticar com a identidade gerenciada do host onde o Amplia é executado (por exemplo, a identidade gerenciada do App Service dele)
  em vez de uma chave secreta ou certificado do aplicativo. Nesse caso, deixe **AppKey** e **CertThumb** em branco e conceda as permissões descritas acima à identidade gerenciada, em vez de a um aplicativo
* **UseHsm**: por padrão, são criadas chaves [protegidas por HSM](https://docs.microsoft.com/en-us/azure/key-vault/key-vault-hsm-protected-keys). Para usar
  chaves "de software", defina este valor como `false`

Exemplo (arquivo de configuração *.ini* ou *.conf*):

```ini
[KeyStores:MyKeyVault]
Type=AzureKeyVault
Endpoint=https://xxx.vault.azure.net/
AppId=00000000-0000-0000-0000-000000000000
AppKey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
```

Exemplo (variáveis de ambiente):

```sh
KeyStores__MyKeyVault__Type=AzureKeyVault
KeyStores__MyKeyVault__Endpoint=https://xxx.vault.azure.net/
KeyStores__MyKeyVault__AppId=00000000-0000-0000-0000-000000000000
KeyStores__MyKeyVault__AppKey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
```

Exemplo (arquivo de configuração *.json*):

```json
"KeyStores": {
	...,
	"MyKeyVault": {
		"Type": "AzureKeyVault",
		"Endpoint": "https://xxx.vault.azure.net/",
		"AppId": "00000000-0000-0000-0000-000000000000",
		"AppKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
	},
	...
}
```

## Veja também

* [Repositórios de chaves](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores)
* [Amplia on-premises](https://docs.lacunasoftware.com/articles/amplia/on-premises)
