Secrets Manager 에 통합 Schematics

IBM Cloud® Schematics 와의 통합을 지원합니다 IBM Cloud® Secrets Manager 와의 통합을 지원하므로 Schematics 구성에서 실제 비밀값을 표시하지 않고도 민감한 정보를 안전하게 관리할 수 있습니다. 시크릿을 하드코딩하는 대신 Secrets Manager 에서 직접 시크릿 참조를 제공하여 보안을 강화하고 시크릿 로테이션을 간소화할 수 있습니다.

Schematics 에 Secrets Manager 을 통합하면 Terraform, Ansible, 확장 프로그램과 같은 자동화 스택에서 비밀 값을 노출할 필요가 없습니다. Schematics 직접 비밀 로테이션과 향상된 보안을 통해 Secrets Manager 워크플로우의 유지보수성을 향상시켜 줍니다.

Schematics 에 Secrets Manager 를 통합하고 비밀에 액세스하려면 Secrets Manager 와 Schematics 사이에 서비스 대 서비스 정책을 만들고 ViewerSecret Reader 역할을 할당해야 합니다.

시작하기 전에

  • 키-값 비밀이 있어야 합니다. 비밀번호를 만들려면 Secrets Manager 인스턴스 만들기를 참조하세요.
  • Schematics 서비스에 Secrets Manager 을 통합하려면 서비스 대 서비스 권한 부여를 구성해야 합니다.
  • 다음 단계에 따라 Schematics 서비스에 대한 서비스 인증 액세스 권한을 부여합니다.
  1. IBM Cloud 콘솔에 로그인합니다.
  2. 관리 > 액세스(IAM) > 권한 부여 > 만들기를 클릭합니다.
  3. 소스 계정을 이 계정으로 선택합니다.
  4. 서비스를 Schematics.
  5. 리소스를 모든 리소스 또는 특정 리소스로 선택합니다.
  6. 대상 서비스를 Secrets Manager 으로 선택합니다.
  7. 뷰어비밀 리더 역할을 선택합니다.
  8. 종속 서비스 권한 부여를 선택하여 소스 및 종속 서비스별로 권한을 위임할 수 있도록 설정합니다.
  9. 권한 부여를 클릭하십시오.

콘솔을 사용하여 Schematics Terraform에 Secrets Manager 통합하기

Schematics 에서 Secrets Manager 을 활성화하는 단계를 따라 Schematics Terraform에 안전하게 연결하세요.

  1. IBM Cloud 콘솔에 로그인합니다.
  2. 메뉴 아이콘 햄버거 아이콘 > 플랫폼 자동화 > Schematics > Terraform > 작업 공간 만들기를 클릭합니다.
    • 템플릿 지정 섹션에서
      • GitHub, GitLab, 또는 Bitbucket 리포지토리 URL- <provide your Terraform template Git repository URL>.
      • 개인 액세스 토큰- <leave it blank>. Open reference picker 을 클릭하여 Secrets Manager 키 참조를 선택할 수 있습니다. 자세한 내용은 Secrets Manager 인스턴스 만들기를 참조하세요.
  3. 참조 선택 페이지에서 계정, 서비스 인스턴스비밀 번호를 선택합니다.
  4. 확인을 클릭하십시오.
  5. 만들기를 클릭하여 워크스페이스를 만듭니다.

참조로 저장되는 입력 변수에 대한 비밀 참조를 관찰합니다.

변수에 Secrets Manager 통합

Schematics 에서 Secrets Manager 을 활성화하여 Schematics Terraform 변수를 안전하게 업데이트하는 단계를 따르세요.

  1. IBM Cloud 콘솔에 로그인합니다.
  2. 메뉴 아이콘 햄버거 아이콘 > 플랫폼 자동화 > Schematics > Terraform을 클릭합니다.
  3. 편집할 작업 영역을 클릭합니다.
  4. 설정 을 클릭하십시오. 변수에서 편집 아이콘을 클릭하여 api_key 매개변수를 편집합니다.
  5. 변수 편집에서 Open reference picker 을 클릭하여 참조 선택 페이지를 보고 , ** 서비스 인스턴스시크릿을 추가합니다.
  6. 저장을 클릭하면 비밀 참조 매개변수가 ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME 로 표시됩니다.

참조로 저장된 입력 변수에 대한 비밀 참조를 관찰합니다.

CLI를 사용하여 Schematics 에 Secrets Manager 통합하는 단계

Schematics 에서 Secrets Manager 을 활성화하여 Schematics 테라폼을 안전하게 업데이트하는 단계를 따르세요.

  1. 명령줄을 다운로드하여 설치하고 공유 명령을 실행하여 해당 지역을 대상으로 하고, 서비스 대 서비스 정책을 만들고, Secrets Manager 인스턴스를 만들고, Terraform 코드에서 시크릿을 참조하여 적용하세요.

    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. 테라폼 코드에서 비밀을 참조하세요.

     variable "my_secret" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  3. Schematics 워크스페이스 적용

    ibmcloud schematics workspace apply --id <WORKSPACE_ID>
    

API를 사용하여 Schematics Terraform에 Secrets Manager 통합하기

Schematics 에서 Secrets Manager 을 활성화하는 단계를 따라 Schematics Terraform에 안전하게 연결하세요.

  1. API를 사용하여 IAM 액세스 토큰을 검색하고 IBM Cloud Schematics을(를) 인증하기 위한 단계를 따르십시오.

  2. 대상 엔드포인트와 IBM Cloud 리소스 컨트롤러 API를 사용하여 Secrets Manager 인스턴스(아직 생성되지 않은 경우)를 생성합니다.

     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. Secrets Manager 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. 서비스할 서비스 만들기 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. Schematics 작업 공간을 사용하여 Terraform 변수 파일에 있는 시크릿을 참조하세요.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  6. 시크릿을 참조할 수 있도록 작업 공간을 테라폼 템플릿으로 업데이트하세요.

    curl -X PATCH /v1/workspaces/{workspace_id}
    
  7. 테라폼 템플릿으로 작업 공간을 적용합니다.

    curl -X POST /v1/workspaces/{workspace_id}/actions/apply
    

Schematics Terraform에 Secrets Manager 통합하기

Schematics 에서 Secrets Manager 을 활성화하는 단계를 따라 Schematics Terraform에 안전하게 연결하세요.

  1. Secrets Manager 인스턴스를 정의합니다.

  2. Secrets Manager 에서 시크릿을 만듭니다. CLI를 사용하거나 수동으로 비밀번호를 만들 수 있습니다. Terraform에서 비밀은 일반적으로 직접 생성되지 않고 참조됩니다.

  3. IAM Service 간 정책을 생성합니다.

  4. 테라폼 변수에서 시크릿을 참조하세요. secret-id 를 Secrets Manager 에 저장된 비밀의 실제 ID로 바꿉니다.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  5. Schematics Terraform 공급자 또는 CLI를 사용하여 앞의 구성으로 워크스페이스를 만드 세요.