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

  1. Faça login no console IBM Cloud.
  2. Clique em Gerenciar > Acesso (IAM) > Autorizações > Criar.
  3. Selecione uma conta de origem como Esta conta.
  4. Selecione o serviço como Schematics.
  5. Selecione Recursos como Todos os recursos ou Recursos específicos.
  6. Selecione Target Service como Secrets Manager.
  7. Selecione a função como Viewer e Secret Reader.
  8. Selecione Autorizar serviços dependentes para permitir que a autorização seja delegada por serviços de origem e dependentes.
  9. 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.

  1. Faça login no console IBM Cloud.
  2. Clique no ícone de hambúrguer Menu > Platform Automation > Schematics > Terraform > Criar espaço de trabalho.
    • Na seção Specify Template (Especificar modelo ):
      • GitHub, GitLab, ou Bitbucket repositório URL- <provide your Terraform template Git repository URL>.
      • Token de acesso pessoal- <leave it blank>. Você pode clicar em Open reference picker para selecionar sua referência de chave Secrets Manager. Para obter mais informações, consulte a criação de uma instância do Secrets Manager.
  3. Na página Selecionar uma referência, selecione Conta, Instância de serviço e Segredo.
  4. Clique em OK.
  5. 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.

  1. Faça login no console IBM Cloud.
  2. Clique no ícone de hambúrguer do menu > Automação da plataforma > Schematics > Terraform.
  3. Clique em seu espaço de trabalho para editar.
  4. Clique em Configurações. Em Variables (Variáveis ), clique no ícone Edit (Editar ) para editar os parâmetros do site api_key.
  5. Em Edit Variable (Editar variável ), clique em Open reference picker para 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 ).
  6. 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.

  1. 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>
    
  2. 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"
    }
    
  3. 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.

  1. Siga as etapas para recuperar seu token de acesso do IAM e autenticar com o IBM Cloud Schematics usando a API.

  2. 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>"
     }'
    
  3. 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"}'
    
  4. 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>"
         }]
       }]
     }
    
  5. 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"
    }
    
  6. Atualize o espaço de trabalho com o modelo do Terraform para fazer referência ao segredo.

    curl -X PATCH /v1/workspaces/{workspace_id}
    
  7. 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.

  1. Defina a instância Secrets Manager.

  2. 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.

  3. Crie a política IAM Service-to-Service.

  4. Faça referência ao segredo em Variáveis do Terraform. Substitua secret-id pela ID real do segredo armazenado em Secrets Manager.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  5. Use o provedor Schematics Terraform ou a CLI para criar seu espaço de trabalho com a configuração anterior.