IBM Cloud Docs
Uso de integrações de segredos em suas cadeias de ferramentas

Uso de integrações de segredos em suas cadeias de ferramentas

Os recursos de gerenciamento de segredos fornecidos na configuração da cadeia de ferramentas e nas interfaces de usuário do pipeline permitem a seleção de segredos armazenados em cofre usando as integrações de segredos para IBM Cloud® Secrets Manager, IBM® Key Protect ou HashiCorp Vault. Ao usar a caixa de diálogo Seletor de segredos, um editor de cadeia de ferramentas ou pipeline pode selecionar segredos nomeados de uma integração de segredos vinculados que é configurada por CRN (Nome do recurso de nuvem) ou por nome, que é resolvido por referência em tempo de execução na cadeia de ferramentas e no pipeline. Depois que um segredo é escolhido, um CRN ou uma referência de segredo canônico é injetado na propriedade segura da cadeia de ferramentas ou do pipeline correspondente, onde o formato é crn:v1:...secret:<secret-guid> se for uma integração Secrets Manager configurada por CRN, ou, alternativamente, {vault::integration-name.secret-name} se for uma integração de cofre que usa qualquer um dos provedores compatíveis e configurada por nome.

O formato de referência canônico por nome atualmente não resolve um segredo que inclui o caractere de ponto final no nome do segredo porque esse caractere é usado para delimitar cada seção do caminho canônico.

Independentemente do tipo de referência de segredo usado, seja por CRN ou por nome, os componentes da interface de usuário front-end e a caixa de diálogo Secrets Picker usam apenas uma referência de segredo. O valor resolvido de uma referência secreta por CRN ou por nome nunca é exposto ao front-end e é sempre resolvido dinamicamente em tempo de execução dentro de uma cadeia de ferramentas e pipeline com base em uma autorização permitida disponível (configurada usando as políticas de acesso e autorizações do IAM).

Dentro de IBM Cloud®, o processo dinâmico de resolução de por CRN e por nome referências de segredos em cadeias de ferramentas e pipelines é realizado usando pontos de extremidade privados virtuais (VPE) internos para todos os IBM Cloud® Secrets Manager e IBM® Key Protect instâncias do provedor em todas as regiões. Isso garante que todos os dados de solicitação e resposta entre cadeias de ferramentas, pipelines e instâncias de provedores IBM Cloud® Secrets Manager e IBM® Key Protect sejam mantidos dentro da rede privada IBM Cloud e não trafeguem por nenhum canal de rede pública.

Além de selecionar manualmente os segredos escolhidos, um a um, em qualquer integração de segredos vinculados em uma cadeia de ferramentas, a opção de usar um Secret Hint também está disponível. Essa opção permite que um modelo de cadeia de ferramentas seja predefinido com nomes de segredos sugeridos (também conhecidos como Hints) que são uma referência secreta de forma abreviada. O formato de uma dica secreta é {vault::secret-name}, em que nenhum nome de integração secreta é incluído. Isso proporciona flexibilidade ao autor da cadeia de ferramentas, pois todos os nomes secretos necessários podem ser preenchidos previamente em um toolchain.yml e, em seguida, esses nomes são automaticamente resolvidos em relação a quaisquer integrações de segredos configuradas para a cadeia de ferramentas.

Conforme descrito anteriormente, você pode configurar Secrets Manager para fazer referência a segredos por CRN. Para obter mais informações, consulte Nomes de recursos de nuvem(CRN). Esse formato permite maior flexibilidade porque você pode fazer referência a segredos de uma instância Secrets Manager em uma conta diferente se a autorização correta estiver em vigor. Para obter mais informações, consulte Configurando o Secrets Manager.

Um Hint é um nome padrão sugerido que é automaticamente resolvido em relação ao primeiro segredo correspondente com o mesmo nome em qualquer uma das integrações de segredos por nome disponíveis que estão vinculadas à cadeia de ferramentas.

Segredos de pipeline do DevSecOps

Os segredos usados na CI e na CD são descritos a seguir:

SegredosDevSecOps
Segredo Sugestão Informações
Chave de API do IBM Cloud ibmcloud-api-key Necessário: CI & CD Usado para autenticar com a nuvem pública IBM e realizar uma ampla gama de operações
Chave privada GPG signing_key Obrigatório: Somente CI Este é o certificado usado para assinar imagens criadas pelo pipeline de CI
Chave de API do serviço de trabalhador privado do IBM private-worker-service-api-key Necessário: Apenas CI Uma chave API de ID de serviço Usada para executar cargas de trabalho de pipeline de entrega em um Tekton Private Worker Service
Token de acesso do GitHub git-token Opcional: CI & CD Usado para autenticar com GitHub e fornecer acesso aos repositórios
Artifactory Token de API artifactory-token Requerido: CI & CD Usado para acessar imagens usadas por tarefas de pipeline
Webhook do Slack slack-webhook Opcional: CI & CD Este webhook é necessário se você optar por usar a integração da ferramenta Slack para publicar notificações de status da cadeia de ferramentas
ServiceNow Token de API servicenow-api-token Requerido: Somente CD Usado para acessar o Service Now para operações de gerenciamento de mudanças
ID de função do HashiCorp Vault role-id Necessário: CI & CD Usado para autenticar com o servidor HashiCorp Vault
ID de segredo do HashiCorp Vault secret-id Necessário: CI & CD Usado para autenticar com o servidor HashiCorp Vault
Chave de API do gravador do IBM Cloud Object Storage cos-api-key Requerido: CI & CD Usado para autenticar com o serviço Object Storage- Essa chave deve ter permissão writer
Token de autenticação ou de senha do SonarQube sonarqube-password Opcional: CI Usado para autenticar com o analisador de código-fonte SonarQube

Se você estiver usando um servidor HashiCorp Vault, certifique-se de que a integração da ferramenta HashiCorp Vault use o método AppRole Auth Method. Ao usar o método de autenticação AppRole, você precisa de role-id e secret-id para integrar com êxito o servidor do Vault HashiCorp à cadeia de ferramentas. Como role-id e secret-id são segredos em si, recomenda-se armazená-los usando uma integração de ferramenta IBM Key Protect para que possam ser recuperados e aplicados com segurança no fluxo de trabalho da cadeia de ferramentas. Todos os outros segredos da cadeia de ferramentas devem ser armazenados e recuperados usando a integração da ferramenta HashiCorp Vault.

Se a propriedade de ambiente do pipeline git-token não estiver definida, ibmcloud-api-key será usado para recuperar o token de acesso Git Repos and Issue Tracking por padrão. No entanto, caso ibmcloud-api-key não tenha acesso a git, deve-se configurar git-token.

Configurando os armazenamentos de segredos

Com o IBM Cloud, você pode escolher entre várias ofertas de gerenciamento de segredos e proteção de dados que o ajudam a proteger seus dados confidenciais e a centralizar seus segredos. Você pode escolher entre as integrações de cofre, dependendo de seus requisitos, conforme explicado em Gerenciando IBM Cloud segredos. Esta documentação fornece informações sobre pré-requisitos e como usar uma lista de nomes secretos prescritos, também conhecidos como dicas. Ao usar sugestões em um modelo, uma cadeia de ferramentas pode ser preenchida automaticamente com segredos pré-configurados sem a necessidade de selecioná-los manualmente nas várias integrações de área segura anexadas à cadeia de ferramentas.

Use IBM Cloud® Secrets Manager para armazenar e aplicar com segurança segredos como chaves de API, assinatura de imagem ou credenciais do HashiCorp Vault que fazem parte de sua cadeia de ferramentas.

Secrets Manager formulário de integração de ferramentas
Integração de ferramentasIBM Secrets Manager

Os modelos também vêm com uma integração da ferramenta HashiCorp Vault, como no exemplo a seguir:

HashiCorp Formulário de integração da ferramenta Vault com campos obrigatórios e valores de exemplo
'HashiCorp Integração da ferramenta Vault

Para usar o HashiCorp Vault, você deve fornecer as seguintes informações:

Nome
Um nome para essa integração de ferramentas. Este nome é exibido na cadeia de ferramentas.
URL do servidor
O servidor URL para sua instância do HashiCorp Vault. Por exemplo, https://<vault-service>.<org>.com:8200.
Integração URL
O site URL para o qual você deseja navegar quando clicar no bloco HashiCorp Vault Integration.
Caminho dos segredos
O caminho de montagem onde seus segredos estão armazenados na instância do HashiCorp Vault.
Método de Autenticação
O método de autenticação para sua instância do HashiCorp Vault. Use o AppRole.
ID da função
Identificador que seleciona o site AppRole em relação ao qual as outras credenciais são avaliadas.
ID do segredo
Credencial que é exigida por padrão para qualquer login (com secret_id) e que deve ser sempre secreta.

Os modelos também vêm com uma integração de ferramentas IBM® Key Protect for IBM Cloud®:

Key Protect formulário de integração de ferramentas com campos obrigatórios e valores de exemplo
Integração da ferramentaIBM Key Protect

Se você armazenou o role id e o secret id em Key Protect com antecedência, poderá selecionar a instância Key Protect que contém esses segredos no cartão de ferramentas, conforme mostrado na Figura 2. Depois disso, você pode clicar nos ícones de chave nos campos role id e secret id no cartão de ferramentas do HashiCorp Vault e usar o seletor para aplicar os segredos a esses campos.

Da mesma forma, quaisquer outros segredos usados na cadeia de ferramentas têm um ícone de chave anexado ao campo de texto. Você pode usar o mesmo controle de seleção para aplicar os segredos do HashiCorp Vault a todas as instâncias restantes.