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 사이에 서비스 대 서비스 정책을 만들고 Viewer 와 Secret Reader 역할을 할당해야 합니다.
시작하기 전에
- 키-값 비밀이 있어야 합니다. 비밀번호를 만들려면 Secrets Manager 인스턴스 만들기를 참조하세요.
- Schematics 서비스에 Secrets Manager 을 통합하려면 서비스 대 서비스 권한 부여를 구성해야 합니다.
- 다음 단계에 따라 Schematics 서비스에 대한 서비스 인증 액세스 권한을 부여합니다.
- IBM Cloud 콘솔에 로그인합니다.
- 관리 > 액세스(IAM) > 권한 부여 > 만들기를 클릭합니다.
- 소스 계정을 이 계정으로 선택합니다.
- 서비스를 Schematics.
- 리소스를 모든 리소스 또는 특정 리소스로 선택합니다.
- 대상 서비스를 Secrets Manager 으로 선택합니다.
- 뷰어 및 비밀 리더 역할을 선택합니다.
- 종속 서비스 권한 부여를 선택하여 소스 및 종속 서비스별로 권한을 위임할 수 있도록 설정합니다.
- 권한 부여를 클릭하십시오.
콘솔을 사용하여 Schematics Terraform에 Secrets Manager 통합하기
Schematics 에서 Secrets Manager 을 활성화하는 단계를 따라 Schematics Terraform에 안전하게 연결하세요.
- IBM Cloud 콘솔에 로그인합니다.
- 메뉴 아이콘
> 플랫폼 자동화 > Schematics > Terraform > 작업 공간 만들기를 클릭합니다.
- 템플릿 지정 섹션에서
- GitHub, GitLab, 또는
Bitbucket리포지토리 URL-<provide your Terraform template Git repository URL>. - 개인 액세스 토큰-
<leave it blank>.Open reference picker을 클릭하여 Secrets Manager 키 참조를 선택할 수 있습니다. 자세한 내용은 Secrets Manager 인스턴스 만들기를 참조하세요.
- GitHub, GitLab, 또는
- 템플릿 지정 섹션에서
- 참조 선택 페이지에서 계정, 서비스 인스턴스 및 비밀 번호를 선택합니다.
- 확인을 클릭하십시오.
- 만들기를 클릭하여 워크스페이스를 만듭니다.
참조로 저장되는 입력 변수에 대한 비밀 참조를 관찰합니다.
변수에 Secrets Manager 통합
Schematics 에서 Secrets Manager 을 활성화하여 Schematics Terraform 변수를 안전하게 업데이트하는 단계를 따르세요.
- IBM Cloud 콘솔에 로그인합니다.
- 메뉴 아이콘
> 플랫폼 자동화 > Schematics > Terraform을 클릭합니다.
- 편집할 작업 영역을 클릭합니다.
- 설정 을 클릭하십시오. 변수에서 편집 아이콘을 클릭하여
api_key매개변수를 편집합니다. - 변수 편집에서
Open reference picker을 클릭하여 참조 선택 페이지를 보고 , ** 서비스 인스턴스및시크릿을 추가합니다. - 저장을 클릭하면 비밀 참조 매개변수가
ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME로 표시됩니다.
참조로 저장된 입력 변수에 대한 비밀 참조를 관찰합니다.
CLI를 사용하여 Schematics 에 Secrets Manager 통합하는 단계
Schematics 에서 Secrets Manager 을 활성화하여 Schematics 테라폼을 안전하게 업데이트하는 단계를 따르세요.
-
명령줄을 다운로드하여 설치하고 공유 명령을 실행하여 해당 지역을 대상으로 하고, 서비스 대 서비스 정책을 만들고, 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> -
테라폼 코드에서 비밀을 참조하세요.
variable "my_secret" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Schematics 워크스페이스 적용
ibmcloud schematics workspace apply --id <WORKSPACE_ID>
API를 사용하여 Schematics Terraform에 Secrets Manager 통합하기
Schematics 에서 Secrets Manager 을 활성화하는 단계를 따라 Schematics Terraform에 안전하게 연결하세요.
-
API를 사용하여 IAM 액세스 토큰을 검색하고 IBM Cloud Schematics을(를) 인증하기 위한 단계를 따르십시오.
-
대상 엔드포인트와 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>" }' -
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"}' -
서비스할 서비스 만들기 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>" }] }] } -
Schematics 작업 공간을 사용하여 Terraform 변수 파일에 있는 시크릿을 참조하세요.
variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
시크릿을 참조할 수 있도록 작업 공간을 테라폼 템플릿으로 업데이트하세요.
curl -X PATCH /v1/workspaces/{workspace_id} -
테라폼 템플릿으로 작업 공간을 적용합니다.
curl -X POST /v1/workspaces/{workspace_id}/actions/apply
Schematics Terraform에 Secrets Manager 통합하기
Schematics 에서 Secrets Manager 을 활성화하는 단계를 따라 Schematics Terraform에 안전하게 연결하세요.
-
Secrets Manager 인스턴스를 정의합니다.
-
Secrets Manager 에서 시크릿을 만듭니다. CLI를 사용하거나 수동으로 비밀번호를 만들 수 있습니다. Terraform에서 비밀은 일반적으로 직접 생성되지 않고 참조됩니다.
-
IAM Service 간 정책을 생성합니다.
-
테라폼 변수에서 시크릿을 참조하세요.
secret-id를 Secrets Manager 에 저장된 비밀의 실제 ID로 바꿉니다.variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Schematics Terraform 공급자 또는 CLI를 사용하여 앞의 구성으로 워크스페이스를 만드 세요.