Integração do site Secrets Manager em Schematics
IBM Cloud® Schematics oferece suporte à integração com o IBM Cloud® Secrets Manager que permite que você gerencie com segurança informações confidenciais sem exibir valores secretos reais nas configurações do Schematics. Em vez de codificar os segredos, você pode fornecer a referência do segredo diretamente do site Secrets Manager para aumentar a segurança e simplificar a rotação do segredo.
A integração do Secrets Manager no Schematics elimina a necessidade de expor valores secretos em pilhas de automação, como Terraform, Ansible e Extensions. Com rotação direta de segredos e segurança aprimorada, o Secrets Manager melhora a capacidade de manutenção de seus fluxos de trabalho do Schematics.
Para integrar Secrets Manager em Schematics e acessar os segredos, é necessário criar uma política de serviço para serviço entre Secrets Manager e Schematics e atribuir funções a Viewer e Secret Reader.
Antes de Iniciar
- Você precisa ter seus segredos de valor-chave. Para criar os segredos, consulte criar a instância Secrets Manager.
- Você precisa configurar a autorização de serviço para serviço para integrar o Secrets Manager no serviço Schematics.
- Siga estas etapas para conceder acesso de autorização de serviço a serviço ao serviço Schematics.
- Faça login no console IBM Cloud.
- Clique em Gerenciar > Acesso (IAM) > Autorizações > Criar.
- Selecione uma conta de origem como Esta conta.
- Selecione o serviço como Schematics.
- Selecione Recursos como Todos os recursos ou Recursos específicos.
- Selecione Target Service como Secrets Manager.
- Selecione a função como Viewer e Secret Reader.
- Selecione Autorizar serviços dependentes para permitir que a autorização seja delegada por serviços de origem e dependentes.
- Clique em Autorizar.
Integração do Secrets Manager no Schematics Terraform usando o console
Siga as etapas para habilitar o Secrets Manager em Schematics para se conectar com segurança ao Schematics Terraform.
- Faça login no console IBM Cloud.
- Clique no ícone
Menu > Platform Automation > Schematics > Terraform > Criar espaço de trabalho.
- Na seção Specify Template (Especificar modelo ):
- GitHub, GitLab, ou
Bitbucketrepositório URL-<provide your Terraform template Git repository URL>. - Token de acesso pessoal-
<leave it blank>. Você pode clicar emOpen reference pickerpara selecionar sua referência de chave Secrets Manager. Para obter mais informações, consulte a criação de uma instância do Secrets Manager.
- GitHub, GitLab, ou
- Na seção Specify Template (Especificar modelo ):
- Na página Selecionar uma referência, selecione Conta, Instância de serviço e Segredo.
- Clique em OK.
- Clique em Create para criar um espaço de trabalho.
Observe a referência secreta de uma variável de entrada, que é armazenada como uma referência.
Integrando Secrets Manager em uma variável
Siga as etapas para habilitar Secrets Manager em Schematics para atualizar com segurança a variável Schematics do Terraform.
- Faça login no console IBM Cloud.
- Clique no ícone
do menu > Automação da plataforma > Schematics > Terraform.
- Clique em seu espaço de trabalho para editar.
- Clique em Configurações. Em Variables (Variáveis ), clique no ícone Edit (Editar ) para editar os parâmetros do site
api_key. - Em Edit Variable (Editar variável ), clique em
Open reference pickerpara visualizar a página Select a reference page (Selecionar uma página de referência), add (Adicionar), Service instance (Instância de serviço ) e Secret (Segredo ). - Clique em Save (Salvar ) para visualizar o parâmetro de referência secreta como
ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME.
Observe a referência secreta de uma variável de entrada que é armazenada como referência.
Etapas para integrar o Secrets Manager em Schematics usando a CLI
Siga as etapas para habilitar Secrets Manager em Schematics para atualizar com segurança o Terraform Schematics.
-
Baixe e instale a linha de comando e execute os comandos compartilhados para direcionar sua região, criar uma política de serviço para serviço, criar uma instância do Secrets Manager, fazer referência aos segredos em seu código do Terraform e aplicar.
ibmcloud login --sso ibmcloud target -r <region> ibmcloud iam service-policy-create --source-service-name schematics --target-service-instance-name <your-secrets-manager-name> --roles "Viewer,SecretReader" ibmcloud secrets-manager secret-create --secret-type arbitrary --name <secret-name> --payload <secret-value> -
Faça referência ao segredo em seu código do Terraform.
variable "my_secret" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Aplique o espaço de trabalho Schematics
ibmcloud schematics workspace apply --id <WORKSPACE_ID>
Integração do Secrets Manager no Schematics Terraform usando a API
Siga as etapas para habilitar o Secrets Manager em Schematics para se conectar com segurança ao Schematics Terraform.
-
Siga as etapas para recuperar seu token de acesso do IAM e autenticar com o IBM Cloud Schematics usando a API.
-
Crie uma instância Secrets Manager (se ainda não tiver sido criada) usando seu endpoint de destino e a API do controlador de recursos IBM Cloud.
curl -X POST /v1/resource_instances -H "Authorization: <iam_access_token>" -d '{"name": "my-secrets-manager", "target": "test-eu-de", "resource_group": "default", "resource_plan_id": "<plan-id-for-secrets-manager>" }' -
Crie um segredo em Secrets Manager usando a API Secrets Manager.
curl -X POST /api/v1/secrets/arbitrary -H "Authorization: <iam_access_token>" -d '{"name": "my-token-secret","description": "Token for private Git repo","secret_group_id": "<secret-group-id>","resources": [],"payload": "your-token-value"}' -
Criar um serviço para atender à política de IAM
{ "type": "service", "subjects": [{ "attributes": [{ "name": "serviceName", "value": "schematics" }] }], "roles": [ { "role_id": "crn:v1:bluemix:public:iam::::role:Viewer" }, { "role_id": "crn:v1:bluemix:public:iam::::role:SecretReader" } ], "resources": [{ "attributes": [{ "name": "serviceInstance", "value": "<secrets-manager-instance-id>" }] }] } -
Faça referência ao segredo em seu arquivo de variáveis do Terraform usando o espaço de trabalho Schematics.
variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Atualize o espaço de trabalho com o modelo do Terraform para fazer referência ao segredo.
curl -X PATCH /v1/workspaces/{workspace_id} -
Aplique o espaço de trabalho com o modelo do Terraform.
curl -X POST /v1/workspaces/{workspace_id}/actions/apply
Integração do Secrets Manager no Schematics Terraform usando o Terraform
Siga as etapas para habilitar o Secrets Manager em Schematics para se conectar com segurança ao Schematics Terraform.
-
Defina a instância Secrets Manager.
-
Criar um segredo em Secrets Manager. Você pode usar a CLI ou criar segredos manualmente. No Terraform, os segredos são normalmente referenciados, não criados diretamente.
-
Crie a política IAM Service-to-Service.
-
Faça referência ao segredo em Variáveis do Terraform. Substitua
secret-idpela ID real do segredo armazenado em Secrets Manager.variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Use o provedor Schematics Terraform ou a CLI para criar seu espaço de trabalho com a configuração anterior.