Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Integre o Azure Key Vault ao fluxo de trabalho do GitHub Actions para gerenciar com segurança credenciais confidenciais em um só lugar. Essa abordagem reduz o risco de exposição acidental ou acesso não autorizado a dados confidenciais.
Este fluxo de trabalho de exemplo do GitHub Actions demonstra como recuperar segredos com segurança do Azure Key Vault usando a autenticação OIDC (OpenID Connect).
Pré-requisitos
- Configure uma credencial de identidade federada em um aplicativo do Microsoft Entra ou em uma identidade gerenciada atribuída pelo usuário. Saiba como autenticar no Azure do GitHub Actions pelo OpenID Connect. Ao configurar sua credencial federada, armazene esses segredos no GitHub:
-
AZURE_CLIENT_ID: sua ID de cliente da entidade de serviço do Azure. -
AZURE_TENANT_ID: a ID do locatário do Azure AD. -
AZURE_SUBSCRIPTION_ID: a ID da assinatura do Azure. -
KEYVAULT_NAME: o nome do cofre de chaves.
-
- Conceder permissões: verifique se a entidade de serviço tem acesso apropriado ao Key Vault (exemplo, função "Usuário de Segredos do Key Vault").
- Substitua
<SECRET_NAME>pelo nome do seu segredo do Key Vault.
Exemplo de fluxo de trabalho do GitHub Actions
O que o fluxo de trabalho faz:
- Gatilhos em pushes para o branch principal
- Usa a autenticação OIDC para se conectar ao Azure (sem senhas armazenadas no GitHub)
- Recupera um segredo do Azure Key Vault
- Mascarar o valor do segredo com
::add-mask::para impedir que ele apareça nos logs. - Disponibiliza o segredo como uma variável de ambiente para as etapas subsequentes
name: Access Azure Key Vault and pass secret to workflow
on:
push:
branches:
- main
permissions:
id-token: write
contents: read
jobs:
get-secret:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Azure Login
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Retrieve secret from Key Vault
id: keyvault
uses: azure/CLI@v1
with:
inlineScript: |
SECRET_VALUE=$(az keyvault secret show --name <SECRET_NAME> --vault-name ${{ secrets.KEYVAULT_NAME }} --query value -o tsv)
echo "::add-mask::$SECRET_VALUE"
echo "SECRET_VALUE=$SECRET_VALUE" >> $GITHUB_ENV
- name: Use retrieved secret
run: echo "The secret is successfully retrieved!"
- name: Use SECRET_VALUE in deployment
run: |
./deploy.sh
env:
SECRET_VALUE: ${{ env.SECRET_VALUE }}