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:
| 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.
Os modelos também vêm com uma integração da ferramenta HashiCorp Vault, como no exemplo a seguir:
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®:
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.