컨텍스트 기반 제한사항으로 Secrets Manager 리소스 보호
IBM Cloud® Secrets Manager 서비스 인스턴스를 설정한 후 컨텍스트 기반 제한사항(CBR)을 사용하여 액세스를 관리할 수 있습니다.
CBR 설정 관리
컨텍스트 기반 제한을 사용하면 지정된 기준에 따라 Secrets Manager 리소스에 대한 사용자 및 서비스 액세스 제한을 정의하고 적용할 수 있습니다.
컨텍스트 기반 제한사항 및 IAM (Identity and Access Management) 정책을 사용하여 Secrets Manager 리소스를 제어할 수 있습니다. 이러한 리소스에는 Secrets Manager 인스턴스에 링크된 VPC (Virtual Private Cloud) 참조 및 Internet Protocol ) 주소가 포함됩니다.
이러한 제한은 ID를 기반으로 하는 기존 IAM 정책과 함께 작동하여 또 다른 보호 계층을 제공합니다. IAM 정책과는 달리, 컨텍스트 기반 제한사항으로 액세스 권한이 부여되지 않습니다. 컨텍스트 기반 제한사항은 사용자가 구성하는 허용된 컨텍스트에서 액세스 요청이 발생하는지 확인합니다. IAM 액세스 및 컨텍스트 기반 제한사항이 모두 액세스를 허용하므로, 컨텍스트 기반 제한사항은 손상되거나 관리되지 않은 인증 정보의 경우에도 보호를 제공합니다. 자세한 정보는 컨텍스트 기반 제한사항은 무엇입니까?를 참조하십시오.
규칙을 만들거나 업데이트 또는 삭제하려면 Secrets Manager 서비스에서 Administrator 역할이 있어야 합니다. 네트워크 구역을 작성, 업데이트 또는 삭제하려면 사용자에게 컨텍스트 기반 제한사항 서비스에 대한 Editor 또는 Administrator 역할도 있어야 합니다. 컨텍스트 기반 제한사항 서비스에서 Viewer 역할을 가진 사용자는 규칙에 네트워크 구역만 추가할 수 있습니다.
생성되는 IBM Cloud Activity Tracker 또는 감사 로그 이벤트는 Secrets Manager가 아닌 컨텍스트 기반 제한사항 서비스에서 발생합니다. 자세한 정보는 컨텍스트 기반 제한사항 모니터링 을 참조하십시오.
컨텍스트 기반 제한사항으로 Secrets Manager 리소스 보호를 시작하려면 리소스 보안을 위해 컨텍스트 기반 제한사항 활용 에 대한 튜토리얼을 참조하십시오.
Secrets Manager 가 컨텍스트 기반 제한사항과 통합되는 방법
액세스를 제한하려면 구역 및 규칙 을 작성해야 합니다.
먼저, 네트워크 또는 리소스 정의에 적합한 세부 정보가 포함된 영역을 만듭니다. 그런 다음 해당 영역을 지정된 리소스에 연결하여 액세스를 제한합니다. RESTful API 를 사용하거나 컨텍스트 기반 제한사항을 사용하여 구역 및 규칙을 작성할 수 있습니다. 구역 또는 규칙을 작성하거나 업데이트한 후 변경사항이 적용되는 데 몇 분이 걸릴 수 있습니다.
CBR 규칙은 프로비저닝 또는 디프로비저닝 프로세스에 적용되지 않습니다.
제한사항
사용자에게 인스턴스 레벨 IAM 액세스 권한이 있는 경우 특정 시크릿 그룹에 적용되는 CBR 규칙이 적용되지 않습니다. 이 제한사항을 해결하려면 사용자의 IAM 액세스 정책을 시크릿 그룹으로만 설정하십시오.
컨텍스트 기반 제한사항은 Secrets Manager API 와 연관된 조치만 보호합니다. 다음 플랫폼 API와 연관된 조치는 컨텍스트 기반 제한사항으로 보호되지 않습니다. 특정 조치 ID는 API 문서를 참조하십시오.
- 자원 인스턴스 API
- 자원 키 API
- IAM 정책 API
- 글로벌 검색 API
- 글로벌 태그 지정 첨부 및 분리 API
- 컨텍스트 기반 제한 규칙 API
- Secrets Manager API
네트워크 구역 작성
네트워크 구역을 작성하여 규칙을 적용할 수 있는 시기를 판별하기 위해 액세스 요청이 시작되는 네트워크 위치의 허용 목록을 정의할 수 있습니다. 네트워크 위치 목록은 다음 속성으로 지정할 수 있습니다.
- IP 주소는 개별 주소, 범위 또는 서브넷을 포함합니다.
- VPC
- 다른 IBM Cloud 서비스에서 액세스를 허용하는 서비스 참조입니다.
다른 IBM Cloud 리소스를 대상으로 하는 규칙의 네트워크 영역에 Secrets Manager 을 추가하지 않으면 워크플로우의 일부 작업이 실패할 수 있습니다.
가상 프라이빗 클라우드의 클래식 인프라에 IBM Cloud 가상 서버를 만든 경우, CBR 규칙에 사용해야 하는 사설 IP 주소는 가상 프라이빗 클라우드 게이트웨이 IP입니다. 클래식 인프라의 가상 서버에 대해 내부 IP 주소를 사용하지 마십시오. 게이트웨이 IP 주소를 찾으려면 가상 프라이빗 클라우드 인프라에서 관련 IBM Cloud 서비스 엔드포인트 소스 IP 주소를 선택하세요.
API를 사용하여 네트워크 영역 만들기
create-zone 명령을 사용하여 네트워크 구역을 작성할 수 있습니다. 자세한 정보는 API 문서 를 참조하십시오. Secrets Manager 를 서비스 참조로 네트워크 구역에 추가하여 Secrets Manager 가 규칙의 주제인 계정의 리소스 및 서비스에 액세스할 수 있도록 허용할 수 있습니다.
Secrets Manager 의 serviceRef 속성은 secrets-manager 입니다.
참조 대상을 확인하여 사용 가능한 서비스를 판별할 수 있습니다.
Secrets Manager 를 네트워크 구역에 추가하는 예제 페이로드입니다.
{
"name": "Example zone 1",
"description": "",
"addresses": [
{
"type": "serviceRef",
"ref": {
"service_name": "secrets-manager",
"account_id": "ACCOUNT-ID"
}
}
]
}
다중 서비스, IP 주소 및 VPC를 네트워크 구역에 추가하는 예제 페이로드입니다.
{
"name": "zone",
"description": "",
"addresses": [
{
"type": "ipAddress",
"value": "192.168.0.0"
},
{
"type": "vpc",
"value": "crn:v1:bluemix:public:is:us-east:a/CRN"
},
{
"type": "vpc",
"value": "crn:v1:bluemix:public:is:us-south:a/CRN"
},
{
"type": "serviceRef",
"ref": {
"service_name": "cloud-object-storage",
"account_id": "ACCOUNT-ID"
}
},
{
"type": "serviceRef",
"ref": {
"service_name": "codeengine",
"account_id": "ACCOUNT-ID"
}
},
{
"type": "serviceRef",
"ref": {
"service_name": "containers-kubernetes",
"account_id": "ACCOUNT-ID"
}
},
{
"type": "serviceRef",
"ref": {
"service_type": "platform_service",
"account_id": "ACCOUNT-ID"
}
},
{
"type": "serviceRef",
"ref": {
"service_name": "iam-groups",
"account_id": "ACCOUNT-ID"
}
}
],
"excluded": []
}
영역을 만든 후에는 영역을 업데이트하거나 제거할 수 있습니다.
UI를 사용하여 네트워크 영역 만들기
전제조건 및 요구사항을 설정한 후 UI에서 구역을 작성할 수 있습니다. 자세한 정보는 컨텍스트 기반 제한사항 작성 을 참조하십시오.
- 허용 목록에 추가할 자원을 판별하십시오.
- 콘솔에서 컨텍스트 기반 제한사항 작성 단계를 수행하십시오. Secrets Manager 서비스를 네트워크 구역에 추가하여 IBM Cloud® Secrets Manager 이 계정의 서비스 및 리소스에 액세스할 수 있도록 하십시오.
영역을 만든 후에는 영역을 업데이트하거나 제거할 수도 있습니다.
CLI를 사용하여 네트워크 영역 만들기
cbr-zone-create 명령을 사용하여 네트워크 위치, VPC및 서비스 참조를 네트워크 구역에 추가할 수 있습니다. 자세한 정보는 CBR CLI 참조 를 참조하십시오. Secrets Manager 를 서비스 참조로 네트워크 구역에 추가하여 Secrets Manager 가 규칙의 주제인 계정의
리소스 및 서비스에 액세스할 수 있도록 하십시오.
- CLI에서 네트워크 구역을 작성하려면 CBR CLI 플러그인을 설치 하십시오.
cbr-zone-create명령을 사용하여 네트워크 구역에 자원을 추가하십시오. 자세한 정보는 CBR CLI 참조 를 참조하십시오. Secrets Manager 의service_name는secrets-manager입니다.
사용 가능한 서비스 참조 목록을 찾으려면 ibmcloud cbr service-ref-targets 명령 를 실행하십시오.
secrets-manager 서비스를 네트워크 구역에 추가하는 예제 명령입니다.
ibmcloud cbr zone-create --name example-zone-1 --description "Example zone 1" --service-ref service_name=secrets-manager
규칙 이해
영역을 만든 후에는 규칙을 만들어 해당 영역을 네트워크 리소스에 연결할 수 있습니다. 규칙에 자원을 추가할 때 네트워크 토폴로지에 특정한 사용 가능한 엔드포인트 유형 에서 선택할 수 있습니다.
API를 사용하여 규칙 만들기
네트워크 구역 작성에서 수집한 정보를 사용하여 API로 규칙을 정의할 수 있습니다.
다음 예제를 검토하여 Secrets Manager에 대한 규칙을 작성하는 방법을 학습하십시오. 자세한 정보는 API 문서 를 참조하십시오.
다음 예제 페이로드는 CLUSTER-ID 클러스터를 보호하는 규칙을 작성합니다. NETWORK-ZONE-ID 구역의 리소스만 클러스터에 액세스할 수 있습니다. operations 가 지정되지 않은 경우 NETWORK-ZONE-ID 구역의 리소스는 cluster 및 management API
모두에 액세스할 수 있습니다.
{
"description": "Example rule 1",
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "ACCOUNT-ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "CLUSTER-ID"
}
]
}
],
"contexts": [
{
"attributes": [
{
"name": "networkZoneId",
"value": "NETWORK-ZONE-ID"
},
{
"name": "endpointType",
"value": "private"
}
]
}
]
}
UI를 사용하여 규칙 만들기
전제조건 및 요구사항을 설정한 후 UI에서 규칙을 작성할 수 있습니다.
- 허용 목록에 추가할 자원을 판별하십시오.
- 콘솔에서 컨텍스트 기반 제한사항 작성 단계를 수행하십시오. Secrets Manager 서비스를 네트워크 구역에 추가하여 IBM Cloud® Secrets Manager 이 계정의 서비스 및 리소스에 액세스할 수 있도록 하십시오.
CLI를 사용하여 규칙 작성
다음 예제를 검토하여 Secrets Manager에 대한 규칙을 작성하는 방법을 학습하십시오. 자세한 정보는 CBR CLI 참조 를 참조하십시오.
- CLI에서 규칙을 작성하려면 CBR CLI 플러그인을 설치 하십시오.
ibmcloud cbr rule-create명령 를 사용하여 CBR 규칙을 작성할 수 있습니다. 자세한 정보는 CBR CLI 참조 를 참조하십시오. Secrets Manager 의service_name는secrets-manager입니다. 서비스 이름 목록을 찾으려면ibmcloud cbr service-ref-targets명령을 실행하십시오. 서비스에 대한 API 유형 목록을 찾으려면ibmcloud cbr api-types --service-name SERVICE명령을 실행하십시오.
addresses 키와 cluster API 유형 및 ipAddress 유형을 사용하는 규칙을 작성하는 예제 명령입니다.
ibmcloud cbr rule-create my-rule-1 --service-name secrets-manager --api-type crn:v1:bluemix:public:secrets-manager::::api-type:cluster --zone-id ZONE-ID
다음 명령은 CLUSTER-ID 클러스터를 보호하는 규칙을 작성합니다. NETWORK-ZONE-ID 네트워크 구역의 자원만 클러스터에 액세스할 수 있습니다. 이 규칙에는 cluster 및 management API 유형이 모두 포함됩니다.
ibmcloud cbr rule-create my-rule-2 --service-name secrets-manager --service-instance CLUSTER-ID --zone-id NETWORK-ZONE-ID
다음 단계
영역 또는 규칙을 만들거나 수정할 때는 적절한 테스트를 거쳐 액세스 및 가용성을 보장해야 합니다.
정의된 영역 외부에서 리소스에 액세스하려는 사용자는 적절한 규칙이 설정되지 않은 경우 HTTP error 401 을 받게 됩니다.