Kubernetes Service 클러스터에서 Secrets Manager 설정
IBM Cloud Secrets Manager 를 IBM Cloud Kubernetes Service 클러스터와 연동하면, Ingress 하위 도메인 인증서 및 기타 시크릿을 중앙에서 관리할 수 있습니다.
Secrets Manager 정보
Secrets Manager를 사용하면 단일 서비스를 사용하여 시크릿을 관리하고 시크릿에 대한 액세스 권한이 있는 사용자를 제어할 수 있습니다. Secrets Manager 인스턴스는 클러스터에서 자동으로 프로비저닝되지 않습니다. 그러나 여러 클러스터에서 단일 Secrets Manager 인스턴스를 사용할 수 있으며 단일 클러스터에 둘 이상의 인스턴스가 있을 수 있습니다.
Secrets Manager를 사용하여 얻을 수 있는 기능은 무엇입니까?
Secrets Manager를 사용하여 다음을 수행할 수 있습니다.
- Ingress TLS 인증서가 포함된 관리형 Kubernetes 시크릿을 생성합니다.
- 소유한 Secrets Manager 인스턴스의 CRN을 사용하여 모든 유형의 Kubernetes 시크릿을 작성하십시오.
- 정기적으로 클러스터의 시크릿을 자동으로 업데이트합니다.
- IBM Cloud 콘솔에서 인증서의 만기 날짜를 추적하십시오.
- 승인된 사용자에 대한 시크릿 그룹을 작성하여 시크릿에 대한 액세스 권한이 있는 사용자를 제어하십시오.
시크릿이 자동으로 업데이트되려면 클러스터에 최소 한 개의 Secrets Manager 인스턴스를 등록해야 한다는 점에 유의하십시오. 자세한 내용은 ‘ Secrets Manager 인스턴스를 클러스터에 등록하기’를 참조하십시오.
Secrets Manager 자주 묻는 질문
Secrets Manager 를 사용할 때는 다음 사항들을 유의하시기 바랍니다.
- Secrets Manager에서 지원되는 시크릿 유형은 무엇입니까?
- Secrets Manager 는 IAM 인증 정보, 키 값 시크릿, 사용자 인증 정보, 임의 시크릿 및 Kubernetes 시크릿을 지원합니다. Kubernetes 의 시크릿의 경우, Secrets Manager 은 TLS 및 비- TLS (Opaque) 시크릿 유형을 모두 지원합니다. TLS 의 비밀을 사용하면 인증서 CRN을 하나 지정할 수 있습니다. TLS 가 아닌 시크릿의 경우, 여러 필드를 지정하여 인증서가 아닌 시크릿을 가져올 수 있습니다. 시크릿을 생성할 때 시크릿 유형을 지정하지 않으면, 기본적으로 ‘ TLS ’가 적용됩니다. 지원되는 시크릿에 대한 자세한 정보는 다른 유형의 시크릿에 대한 작업 을 참조하십시오.
- 등록된 Secrets Manager 인스턴스에 저장된 시크릿이 자동으로 업데이트됩니까?
- 예. 클러스터에 등록된 Secrets Manager 인스턴스가 있는 경우, 클러스터의 시크릿은 하루에 한 번 Secrets Manager 의 값으로 자동 업데이트됩니다. 이러한 업데이트는 해당 CRN의 시크릿 값을 사용하여 수행됩니다.
- Secrets Manager 인스턴스를 작성하고 등록하지 않으면 내 시크릿이 자동으로 업데이트됩니까?
- 클러스터에 등록된 Secrets Manager 인스턴스가 없는 경우 기본 Ingress 시크릿은 90일마다 자동으로 계속 업데이트되며 클러스터에 적용됩니다. 그러나 기본 Ingress 시크릿을 참조 하여 작성한 시크릿은 자동으로 업데이트되지 않습니다.
- 예제 시나리오:
default네임스페이스에 기본 Ingress 인증서가 있습니다.ibmcloud ks ingress secret create명령을 실행하고 기본 Ingress 인증서의 CRN을 참조하여istio-system네임스페이스의 인증서를 미러링하십시오. Secrets Manager 인스턴스가 없으면default네임스페이스의 기본 Ingress 인증서가 자동으로 업데이트됩니다. 그러나 사용자는kubectl명령 또는 다른 순환 메소드를 사용하여istio-system네임스페이스에서 인증서를 정기적으로 업데이트해야 합니다. - 기본 Ingress 인증서를 참조하는 시크릿을 작성했지만 Secrets Manager 인스턴스를 작성하고 등록하지 않았습니다. 내 비밀 정보를 관리하는 방법은 무엇입니까?
- Secrets Manager 인스턴스를 등록하지 않으면 IBM Cloud Kubernetes Service 만 기본 Ingress 시크릿을 자동으로 업데이트합니다.
kubectl명령 또는 다른 순환 방법을 사용하여 다른 시크릿을 관리해야 합니다. 기본 Ingress 인증서를 참조하는 시크릿이 있는 경우ibmcloud ks ingress secret rm를 사용하여 제거해야 합니다. ibmcloud ks ingress instanceCLI 명령과ibmcloud ks ingress secretCLI 명령의 차이점은 무엇입니까?- IBM Cloud Kubernetes Service에서 Secrets Manager 인스턴스와 직접 작동하는 두 세트의 CLI 명령 (
ibmcloud ks ingress secret명령 및ibmcloud ks ingress instance명령) 이 있습니다.ibmcloud ks ingress instance명령은 Secrets Manager 인스턴스를 관리하는 데 사용됩니다.ibmcloud ks ingress secret명령은 Secrets Manager 인스턴스에 저장된 Ingress 시크릿 또는 클러스터에 직접 작성된 시크릿을 관리하는 데 사용됩니다.
Secrets Manager 인스턴스 설정
다음 단계에 따라 클러스터에 Secrets Manager 를 설정하십시오.
서비스 대 서비스 통신 사용
Secrets Manager 를 IBM Cloud Kubernetes Service 클러스터와 통합하려면 서비스 간 통신에 대한 권한 부여가 필요합니다. 권한을 설정하는 단계를 수행하십시오. 자세한 내용은 ‘ Secrets Manager ’의 ‘연동 기능’을 참조하십시오.
- IBM Cloud 콘솔에서 관리 > **액세스(IAM)**를 클릭하십시오.
- 권한을 클릭하십시오.
- 작성을 클릭하십시오.
- 'Source' 서비스 목록에서 다음을 선택합니다. Kubernetes Service 를 선택하십시오.
- 모든 자원에 대한 액세스 범위를 지정하는 옵션을 선택하십시오.
- ‘Target’ 서비스 목록에서 다음을 선택하십시오 Secrets Manager 를 선택하십시오.
- 모든 자원에 대한 액세스 범위를 지정하는 옵션을 선택하십시오.
- '서비스 액세스' 섹션에서 '관리자' 옵션을 선택하십시오.
- 권한 부여를 클릭하십시오.
Secrets Manager 인스턴스 생성
CLI 또는 UI에서 ‘ Secrets Manager ’ 인스턴스를 생성하려면 ‘ Secrets Manager ’ 문서를 참조하십시오. Secrets Manager 인스턴스가 완전히 프로비저닝되는 데 몇 분이 걸릴 수 있습니다.
Secrets Manager 인스턴스를 생성할 때, 해당 인스턴스는 클러스터 내에 직접 프로비저닝되지 않습니다. 다음 단계에서 새로운 Secrets Manager 인스턴스를 클러스터에 등록해야 합니다.
Secrets Manager 인스턴스를 클러스터에 등록하십시오.
다음 단계를 따라 Secrets Manager 인스턴스를 클러스터에 등록하십시오.
-
Secrets Manager 인스턴스의 CRN을 가져오십시오. 출력에서 CRN은 ID 행에 있습니다.
ibmcloud resource service-instance <instance_name>출력 예
Name: my-secrets-manager-instance ID: crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1: GUID: 111a1111-11a1-111a-1111-1a1a1a1111a1 Location: us-south Service Name: secrets-manager Service Plan Name: standard Resource Group Name: default State: active Type: service_instance Sub Type: Created at: 2022-06-08T12:46:45Z Created by: user@ibm.com Updated at: 2022-06-08T12:54:45Z -
클러스터에 인스턴스를 등록하십시오. 이전 단계에서 찾은 인스턴스 CRN을 지정하십시오.
인스턴스를 클러스터에 등록하고 이를 기본 인스턴스로 설정 하려면
--is-default옵션을 포함하십시오. 그렇지 않으면ibmcloud ks ingress instance default set명령을 사용하여 기본 인스턴스를 설정할 수 있습니다.ibmcloud ks ingress instance register --cluster CLUSTER_NAME_OR_ID --crn INSTANCE_CRN [--is-default] -
Secrets Manager 인스턴스가 클러스터에 등록되었는지 확인하십시오.
ibmcloud ks ingress instance ls --cluster CLUSTER_NAME_OR_ID출력 예
Name Type Is Default Status Secret Group CRN my-secrets-manager-instance secrets-manager false created default crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1::
ibmcloud ks cluster create classic 또는 ibmcloud ks cluster create vpc-gen2 명령어를 사용하여 [클러스터 생성](/docs/containers?topic=containers-clusters) 을 수행할 때, Secrets Manager 인스턴스와 시크릿 그룹을 지정할 수 있습니다. --sm-instance 옵션을 사용하여 클러스터에 인스턴스를 등록하고 --sm-group 옵션을 사용하여 클러스터의 시크릿에
액세스할 수 있는 시크릿 그룹을 지정하십시오. “클러스터 생성 시 Secrets Manager 인스턴스 등록”을 참조하십시오.
기본 Secrets Manager 인스턴스를 설정하고 시크릿을 다시 생성하십시오.
Secrets Manager 인스턴스를 기본값으로 설정하면, 새로 생성되는 모든 Ingress 하위 도메인 인증서가 해당 인스턴스에 저장됩니다.
-
명령을 실행하여 새 기본 인스턴스를 설정하십시오. 인스턴스의 시크릿에 대한 액세스가 허용되는 시크릿 그룹 을 선택적으로 지정할 수 있습니다.
ibmcloud ks ingress instance default set --cluster CLUSTER_NAME_OR_ID --name INSTANCE_NAME --secret-group SECRET_GROUP_ID -
시크릿을 재생성하십시오. IBM에서 관리하는 모든 시크릿 (예: 기본 Ingress 시크릿) 은 새 기본 인스턴스에 업로드됩니다. 이러한 시크릿은 자동으로 업데이트되고 CRN은 Secrets Manager 인스턴스를 참조하도록 변경됩니다.
- 클러스터에 있는 nlb-dns 하위 도메인을 나열하십시오.
ibmcloud ks nlb-dns ls --cluster CLUSTER_NAME_OR_ID ``` 2. 클러스터의 각 하위 도메인에 대해 명령을 실행하여 IBM관리 시크릿을 다시 생성하십시오. 그러면 새 기본 Secrets Manager 인스턴스의 CRN을 참조하도록 이러한 시크릿의 CRN이 업데이트됩니다. 시크릿을 재생성하는 비율은 주당 5회로 제한됩니다. 이 문서의 단계를 반복하면 한계에 도달할 수 있으므로 주의하여 수행하십시오. 시크릿을 재생성하지 않거나 한도에 도달한 경우, 다음 갱신 주기에 시크릿이 Secrets Manager 인스턴스로 업로드됩니다. {: important} ```sh {: pre} ibmcloud ks nlb-dns secret regenerate --cluster CLUSTER_NAME_OR_ID --nlb-subdomain NLB_SUBDOMAIN ``` 3. 기본 Ingress 시크릿이 재생성되었는지 확인하십시오. 출력에서 기본 Ingress 시크릿의 CRN에는 `secrets-manager` 가 포함되어야 합니다. 시크릿이 재생성되는 데 몇 분이 걸릴 수 있습니다. 이 프로세스 중에 출력의 **상태** 열에 `regenerating` 가 표시되고 재생성이 완료되면 `created` 로 전환됩니다. {: note} ```sh {: pre} ibmcloud ks ingress secret ls --show-crn --cluster CLUSTER_NAME_OR_ID ``` 출력 예 ```sh {: screen} Name Namespace Expiry Domains Status Type CRN secret-11111aa1a1a11aa1111111-000 default 3 months from now secret-11111aa1a1a.us-s…domain.cloud created TLS crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1:secret:a111aa11-11a1 secret-22222aa2a2a22aa2222222-000 default 3 months from now secret-22222aa2a2a.us-s…domain.cloud created TLS crn:v1:bluemix:public:secrets-manager:us-south:a/2aa222aa2:secret:a222aa22-22a2 ```
시크릿 그룹으로 시크릿에 대한 액세스 제어
Secrets Manager 를 사용하면 시크릿 그룹을 통해 클러스터 내 시크릿에 대한 액세스 권한을 가진 사용자를 제어할 수 있습니다. 선택한 사용자 또는 서비스 ID만 시크릿 그룹 내의 시크릿에 액세스할 수 있도록 시크릿 그룹을 IAM 액세스 그룹에 지정할 수 있습니다. 자세한 정보는 시크릿 구성 을 참조하십시오.
클러스터 작성 시 Secrets Manager 인스턴스 등록
새로운 Classic 또는 VPC 클러스터를 생성하는 경우, 생성 과정에서 기존 Secrets Manager 인스턴스와 시크릿 그룹을 해당 클러스터에 등록할 수 있습니다. 클러스터 내의 시크릿은 Secrets Manager 인스턴스에 저장되며, 해당 시크릿 그룹에 적용됩니다.
클러스터 생성 시 등록된 Secrets Manager 인스턴스는 자동으로 기본 Secrets Manager 인스턴스가 되지 않습니다. 여전히 수동으로 기본 인스턴스를 설정 해야 합니다.
ibmcloud ks cluster create classic 또는 ibmcloud ks cluster create vpc-gen2 를 사용하여 CLI에서 클러스터를 작성 하는 경우 다음 명령 옵션을 사용하여 Secrets Manager 인스턴스 또는 시크릿 그룹을 지정할 수 있습니다.
--sm-instance: 인스턴스 CRN을 지정하여 Secrets Manager 인스턴스를 클러스터에 등록하려면 이 옵션을 사용하십시오. Secrets Manager 인스턴스의 CRN을 찾으려면ibmcloud resource service-instance <name_of_instance>을 실행하거나 UI의 리소스 목록으로 이동하여 인스턴스를 클릭하십시오.--sm-group: 시크릿 그룹의 ID를 지정하려면 이 옵션을 사용하십시오. 시크릿 그룹 ID를 찾으려면ibmcloud secrets-manager secret-groups를 실행하십시오.
UI에서 클러스터를 작성하는 경우 다음 단계에 따라 Secrets Manager 인스턴스 또는 시크릿 그룹을 지정하십시오.
- 클러스터 작성 페이지의 통합 섹션에서 Secrets Manager 를 사용으로 설정하는 옵션을 선택하십시오.
- Secrets Manager 인스턴스 드롭 다운 메뉴에서 클러스터에 등록할 인스턴스를 선택하십시오. 사용 가능한 인스턴스가 없는 경우 하나를 작성 하십시오.
- Secrets Manager 그룹 드롭 다운 메뉴에서 적용할 시크릿 그룹을 선택하십시오.
- 클러스터를 작성하십시오.
- Secrets Manager 인스턴스가 클러스터에 등록되었는지 확인하십시오.
- 클러스터가 완전히 프로비저닝되면, 클러스터를 클릭하여 클러스터 세부사항을 확인합니다. 통합아래에서 Secrets Manager 표제를 찾고 관리를 클릭하십시오.
- 측면 패널에서 등록된 Secrets Manager 인스턴스아래에 올바른 인스턴스가 나열되어 있는지 확인하십시오.
- 클러스터에 추가 인스턴스를 등록하려면 인스턴스 등록을 클릭하십시오.