Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Integre o Azure Key Vault ao seu fluxo de trabalho de Ações do GitHub para gerenciar credenciais confidenciais com segurança 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 de Ações do GitHub demonstra como recuperar segredos com segurança do Cofre de Chaves do Azure usando a autenticação OpenID Connect (OIDC).
Pré-requisitos
- Configure uma credencial de identidade federada em um aplicativo Microsoft Entra ou uma identidade gerenciada atribuída pelo usuário. Saiba como em Autenticar no Azure a partir de Ações do GitHub pelo OpenID Connect. Ao configurar sua credencial federada, armazene estes segredos no GitHub:
-
AZURE_CLIENT_ID: o ID do cliente da entidade de serviço do Azure. -
AZURE_TENANT_ID: Sua ID de locatário do Azure AD. -
AZURE_SUBSCRIPTION_ID: Sua ID de assinatura do Azure. -
KEYVAULT_NAME: O nome do Cofre da Chave.
-
- Conceder permissões: Verifique se a entidade de serviço tem acesso adequado ao Key Vault (por exemplo, função "Usuário de Segredos do Key Vault").
- Substitua
<SECRET_NAME>pelo nome secreto do Cofre da Chave.
Exemplo de fluxo de trabalho de ações do GitHub
O que o fluxo de trabalho faz:
- Disparadores para envios ao ramo principal
- Usa a autenticação OIDC para se conectar ao Azure (sem senhas armazenadas no GitHub)
- Recupera um segredo do Azure Key Vault
- Mascara o valor secreto com
::add-mask::para impedir que apareça nos registos. - Torna o segredo disponível como uma variável de ambiente para 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 }}