컨텍스트 기반 제한을 통한 계층화된 보안
컨텍스트 기반 제한으로 공격 표면을 줄이세요. 세분화된 액세스 관리를 위해 ID 기반 정책에 네트워크 위치, 엔드포인트 유형 및 MFA 요구 사항을 추가하세요.
컨텍스트 기반 제한을 통해 계정 소유자와 관리자는 규칙의 기준에 따라 IBM Cloud® 리소스에 대한 액세스 제한을 정의하고 적용할 수 있습니다. 기준에는 액세스 요청의 네트워크 위치, 요청이 전송된 엔드포인트 유형, ID의 다단계 인증 수준, 때로는 요청이 액세스하려고 하는 API가 포함됩니다. 이러한 제한은 ID를 기반으로 하는 기존 IAM 정책과 함께 작동하여 또 다른 보호 계층을 제공합니다. IAM 정책과 컨텍스트 기반 제한 모두 액세스를 강제하기 때문에, 컨텍스트 기반 제한은 자격 증명이 손상되거나 잘못 관리되는 경우에도 보호 기능을 제공합니다.
컨텍스트 기반 제한사항 작성에 대한 시나리오 예의 경우 컨텍스트 기반 제한사항을 활용하여 리소스 보호에 대한 튜토리얼을 따르십시오.
보안 전략에서 컨텍스트 기반 제한을 구현하는 방법에 대한 자세한 내용은 솔루션 튜토리얼 컨텍스트 기반 제한을 적용하여 클라우드 보안 강화하기를 참조하세요.
Rules
규칙은 IBM Cloud 리소스를 일련의 컨텍스트와 연결합니다:
- 클라우드 리소스는 IAM 액세스 정책과 유사한 리소스 속성으로 지정됩니다.
- 컨텍스트는 네트워크 구역과 엔드포인트 유형의 조합입니다.
구성하는 컨텍스트에 따라 관련 리소스에 대한 경계가 정의됩니다.
컨텍스트 기반 제한 규칙에 필요한 리소스 속성은 accountId 및 serviceName 입니다. 규칙은 계정 및 특정 서비스로 범위가 지정되어야 합니다.
컨텍스트 기반 제한사항 규칙은 다음 논리에 따라 적용됩니다.
- 규칙의 컨텍스트 중 최소한 하나가 액세스를 허용하는 경우에만 규칙에 의해 액세스 권한이 부여됩니다.
- 특정 리소스에 여러 규칙을 적용할 수 있는 경우 적용 가능한 모든 규칙이 액세스를 허용하는 경우에만 액세스 권한이 부여됩니다.
- 특정 리소스에 적용 가능한 규칙이 없는 경우 액세스는 IAM 정책에 의해 배타적으로 결정됩니다.
IAM 정책과는 달리, 컨텍스트 기반 제한사항으로 액세스 권한이 부여되지 않습니다. 컨텍스트 기반 제한사항은 사용자가 구성하는 허용된 컨텍스트에서 액세스 요청이 발생하는지 확인합니다.
콘솔, CLI 또는 API 등 리소스에 액세스하는 데 사용하는 인터페이스는 해당 리소스에 규칙이 적용되는 방식에 영향을 미치지 않습니다. 이 규칙은 모든 인터페이스에 동일한 방식으로 적용되며 클라이언트 IP 주소를 기반으로 합니다.
규칙 시행
규칙을 만들 때 규칙 적용 방법을 결정하고 언제든지 규칙 적용을 업데이트할 수 있습니다.
- 사용
- 규칙을 시행합니다. 선택한 서비스에 따라 Activity Tracker Event Routing 을 통해 거부된 액세스 시도를 모니터링할 수 있습니다. 각 서비스의 설명서를 검토하여 컨텍스트 기반 제한과 통합하는 방법에 대해 알아보세요.
- 사용 안함
- 계정 리소스에는 제한이 적용되지 않습니다. 규칙을 활성화할 준비가 되지 않은 경우 이 옵션을 선택합니다.
- 보고서 전용
- 선택한 서비스에 따라 규칙을 적용하지 않고도 규칙이 액세스에 미치는 영향을 모니터링할 수 있습니다. 보고서 전용 모드를 사용하면 계정의 리소스에 액세스하려는 모든 시도가 Activity Tracker Event Routing 에 로그인됩니다. 가능한 경우 규칙을 적용하기 전에 30일 동안 모니터링하는 것이 좋습니다.
모든 서비스에서 신고 전용 모드를 사용할 수 있는 것은 아니므로 각 서비스의 설명서를 검토하여 문맥 기반 제한과 통합하는 방법에 대해 알아보세요.
사용 설정한 규칙과 신고 전용 규칙의 영향을 모니터링할 수 있습니다. 자세한 내용은 컨텍스트 기반 제한 모니터링하기를 참조하세요.
규칙의 범위 정의하기
보호하려는 API를 정의하여 규칙의 제한 범위를 좁힐 수 있습니다. 이렇게 하면 서로 다른 액세스 요구 사항이 있는 여러 API에 대해 세분화된 보호 기능을 지정할 수 있습니다.
예를 들어 데이터 플레인 API를 대상으로 하는 규칙을 만들어 Kubernetes 클러스터 또는 컴퓨팅 인프라가 있는 곳에서만 액세스할 수 있도록 할 수 있습니다. 그런 다음 제어 플레인 API 및 모든 플랫폼 API를 대상으로 하는 규칙을 만들어 클라우드 콘솔과의 상호 작용을 보호하여 조직의 VPN 뒤에서만 액세스할 수 있도록 할 수 있습니다.
일부 서비스만 API로 규칙의 범위를 지정하는 기능을 지원합니다.
일부 서비스의 경우 기본적으로 리소스에 대한 모든 서비스 API의 작업을 제한할 수 있으며, 여기에는 서비스가 지원할 수 있는 현재 및 미래의 모든 API가 포함됩니다. 또는 특정 API를 선택합니다. 예를 들어 Kubernetes 에는 요청의 컨텍스트에 따라 액세스를 제한할 수 있는 사용자 지정 서비스 API가 있습니다. 각 서비스의 설명서를 검토하여 문맥 기반 제한과 통합하는 방법에 대해 자세히 알아보세요.
일부 서비스는 서비스가 지원할 수 있는 현재 및 미래의 모든 플랫폼 API를 포함하여 모든 플랫폼 API를 보호하도록 규칙의 범위를 지정하는 기능을 지원합니다. 규칙 범위에 플랫폼 API를 추가하면 리소스 프로비저닝, 서비스 자격 증명 관리, 태그 첨부 등의 플랫폼 작업을 사용자가 정의한 위치에서만 액세스할 수 있습니다.
컨텍스트 기반 제한은 기본적으로 대상 서비스가 지원하는 모든 서비스 및 플랫폼 API를 보호하도록 설정되어 있습니다.
컨텍스트
컨텍스트는 리소스에 액세스할 수 있는 위치를 정의합니다. 컨텍스트는 사용자가 구성하는 허용된 엔드포인트 유형 및 네트워크 구역으로 구성됩니다.
- 컨텍스트에 네트워크 구역이 포함된 경우 해당 구역 중 하나에서 요청이 작성된 경우에만 액세스 권한이 부여됩니다.
- 컨텍스트에 서비스 엔드포인트 유형이 포함되는 경우, 해당 유형 중 하나와 일치하는 연결을 통해 요청을 수신하는 경우에만 액세스 권한이 부여됩니다.
- 컨텍스트에 MFA(다단계 인증)가 포함된 경우 요청하는 ID의 MFA 수준이 필수 MFA 수준 이상인 경우에만 액세스 권한이 부여됩니다.
- 컨텍스트에 여러 제한사항(예: 구역 및 엔드포인트 유형)이 포함된 경우 액세스 권한을 부여할 수 있도록 모든 제한사항이 충족되어야 합니다.
네트워크 구역
액세스 요청이 작성될 때 네트워크 구역에 IP 주소의 허용 목록이 표시됩니다. 다음 속성으로 지정되는 하나 이상의 네트워크 위치 세트를 정의합니다.
- IP 주소는 개별 주소, 범위 또는 서브넷을 포함합니다.
- VPC
- 다른 IBM Cloud® 서비스에서 액세스를 허용하는 서비스 참조입니다.
IP 주소
고객은 트래픽을 전송할 수 있기를 원하는 것을 알고 있는 IP 주소를 지정할 수 있습니다. 지정된 IP 주소의 외부에 있는 모든 항목은 거부됩니다.
VPC
앱이 컨텍스트 기반 제한사항 리소스에 액세스해야 하는 VPC에 배치된 경우 네트워크 구역에 VPC IP 주소를 포함할 수 있습니다. 이렇게 하려면 네트워크 영역에서 대상 VPC를 선택하고 해당 네트워크 영역을 규칙에 추가합니다. 이렇게 하면 VPC가 사용하는 IP 주소를 찾을 필요가 없습니다. 연결된 리소스는 요청이 허용된 IP 주소 세트에서 발생하고 있음을 알고 있습니다.
서비스 참조
서비스 참조는 서비스 또는 서비스 인스턴스의 네트워크 위치를 나타냅니다. 네트워크 영역에 서비스 참조를 포함하면 서비스의 기본 IP 주소를 알 필요 없이 서비스와 관련된 IP 주소가 허용 목록에 추가됩니다. 클라우드 서비스의 네트워크 위치는 컨텍스트 기반 제한 관리자가 알 수 없고 시간이 지나면서 변경될 수 있으므로 서비스 참조가 유용합니다.
다음은 서비스 참조로 네트워크 영역에 추가할 수 있는 서비스 목록입니다:
| 서비스 | 서비스 유형 | service_name |
|---|---|---|
계정 관리 서비스 > 모든 계정 관리 서비스 > 계정 관리 > iam-access-management |
||
| IAM 액세스 그룹 서비스 | 계정 관리 | iam-groups |
| IAM 사용자 관리 | 계정 관리 | user-management |
| Activity Tracker Event Routing | IAM 사용 | logdnaat |
| App Configuration | IAM 사용 | apprapp |
| 카탈로그 관리 서비스 | IAM 지원 | globalcatalog-collection |
| Cloud Block Storage for VPC | IAM 사용 | |
| Cloud Object Storage | IAM 지원 | cloud-object-storage |
| Code Engine | IAM 사용 | codeengine |
| Databases for DataStax | IAM 사용 | databases-for-cassandra |
| Databases for EnterpriseDB | IAM 사용 | databases-for-enterprisedb |
| Databases for Elasticsearch | IAM 사용 | databases-for-elasticsearch |
| Databases for etcd | IAM 사용 | databases-for-etcd |
| Databases for MongoDB | IAM 사용 | databases-for-mongodb |
| Databases for MySQL | IAM 사용 | databases-for-mysql |
| Databases for PostgreSQL | IAM 사용 | databases-for-postgresql |
| Databases for Redis | IAM 사용 | databases-for-redis |
| Direct Link | IAM 사용 가능 | directlink |
| Event Notifications | IAM 사용 | event-notifications |
| Event Streams | IAM 사용 | messagehub |
| Kubernetes Service / Red Hat OpenShift | IAM 사용 | containers-kubernetes |
| Messages for RabbitMQ | IAM 사용 | messages-for-rabbitmq |
| Secrets Manager | IAM 사용 가능 | secrets-manager |
| VPC 인프라 서비스 | IAM 지원 | |
| Schematics | IAM 사용 | schematics |
| 도구 체인 | IAM 지원 | toolchain |
| Watsonx.data | IAM 사용 가능 | lakehouse |
표 1에서 모든 계정 관리 서비스란 표에 나열된 계정 관리 유형 서비스를 그룹화한 것을 말합니다. 예를 들어 표 1에 나열된 두 개의 계정 관리 서비스가 있는 경우 모든 계정 관리 서비스에는 이 두 서비스가 포함됩니다. 더 많은 계정 관리 서비스를 서비스 참조로 사용할 수 있게 되면, 모든 계정 관리 서비스를 서비스 참조로 지정하는 네트워크 영역에는 새로 추가된 계정 관리 서비스가 자동으로 포함됩니다.
규칙에서 대상으로 하는 서비스 오퍼링의 서비스 참조로 추가할 서비스에 대한 자세한 내용은 각 서비스 오퍼링의 설명서를 참조하세요.
엔드포인트 유형
엔드포인트 유형은 액세스 요청이 수신되는 연결을 나타냅니다. 이는 연결을 수신하는 엔드포인트에 해당합니다. 서비스에서 지원하는 모든 엔드포인트 유형 또는 특정 서비스 엔드포인트 유형에서 액세스를 허용할 수 있습니다.
세 가지 공통 엔드포인트 유형은 다음과 같습니다.
- 공용 엔드포인트는 어디에서나 요청을 승인할 수 있습니다.
- 비공개 엔드포인트는 IBM Cloud® 내에서 발생하는 대부분의 요청에 사용할 수 있습니다.
- 직접 엔드포인트는 일반적으로 VPC 내의 리소스에서 발생하는 요청에 대해 Bring-Your-Own-IP 시나리오에서 사용됩니다.
일부 엔드포인트 유형은 선택한 서비스에서 지원되지 않을 수 있습니다.
가상 사설 엔드포인트에 액세스하려면 CLI 사용자가 ibmcloud login -a private.cloud.ibm.com --vpc 명령을 사용하여 로그인해야 합니다. 자세한 내용은 비공개 엔드포인트 게이트웨이 만들기(VPC 사용에 필요)를 참조하세요.
다중 요소 인증
다단계 인증(MFA)은 ID와 비밀번호 외에 다른 인증 요소를 사용하여 신원을 인증하도록 요구합니다. 덜 엄격한 MFA 수준 요구 사항을 설정하면 해당 수준을 충족하거나 초과하는 사용자에게 인증을 허용할 수 있습니다. 예를 들어 규칙에서 사용자에게 MFA LEVEL1 를 사용하여 인증하도록 요구하는 경우 MFA LEVEL2 를 사용하는 사용자는 LEVEL2 이 LEVEL1 의 보안 기준을 초과하므로 여전히 규정을 준수합니다. 다음 MFA 레벨은 각 레벨에 대한 최소 MFA 계수의 이름입니다. 자세한 내용은 IBM Cloud 다단계 인증을 참조하세요.
- LEVEL1: 이메일 기반 MFA
- LEVEL2: TOTP MFA
- LEVEL3: 보안 키 MFA
문맥 기반 제한 규칙은 LEVEL1, LEVEL2, LEVEL3 MFA 외에도 IAM_ACCOUNT_SETTING 값도 지원하므로 규칙의 MFA 값은 계정에 대한 MFA 요구 사항으로 정의한 것과 일치합니다. 이렇게 하면 계정의 MFA 설정에 대한 모든 변경 사항이 규칙에 자동으로 적용됩니다. 자세한 내용은 MFA 옵션을 참조하세요.
IAM 인증 설정의 MFA가 있는 사용자를 위한 IBMid 섹션에서 옵션을 선택하면 IAM의 MFA 값이 컨텍스트 기반 제한에서 LEVEL2 MFA에 매핑됩니다. MFA는 비페더레이션 사용자를 선택하더라도 페더레이션 및 비페더레이션 사용자 모두에게 적용됩니다.
일부 서비스만 규칙에서 MFA를 지정하는 기능을 지원합니다.
액세스 요구 사항
규칙 작업을 완료하려면 대상 서비스에 대한 IAM 정책이 할당되어야 합니다. 네트워크 영역 작업을 완료하려면 컨텍스트 기반 제한 서비스에 대한 IAM 정책을 할당받아야 합니다.
서비스에 대한 컨텍스트 기반 제한을 만들려면 규칙을 만들려는 서비스에 대해 관리자 역할의 IAM 정책이 할당되어야 합니다. 예를 들어, 인스턴스를 보호하는 규칙을 만들려면 Key Protect 인스턴스를 보호하는 규칙을 만들려면 해당 서비스에서 관리자 역할이 할당되어야 하며 Key Protect 서비스에는 관리자 역할을, 컨텍스트 기반 제한 서비스에는 뷰어 역할 이상을 할당해야 합니다.
컨텍스트 기반 제한 서비스의 뷰어 역할은 규칙에 네트워크 영역을 추가할 수 있는 권한을 부여합니다.
컨텍스트 기반 제한 역할 및 조치
네트워크 영역을 관리하려면 컨텍스트 기반 제한 계정 관리 서비스에 대한 특정 역할이 있는 IAM 정책을 할당받아야 합니다. 다음 표는 계정 관리를 위해 가능한 액세스 역할과 작업을 보여줍니다.
| 역할 | 조치 |
|---|---|
| 뷰어 | 네트워크 구역 보기 |
| 편집자 | 네트워크 구역 보기
네트워크 구역 작성 네트워크 구역 업데이트 네트워크 구역 제거 |
| 관리자 | 네트워크 구역 보기
네트워크 구역 작성 네트워크 구역 업데이트 네트워크 구역 제거 |
자세한 정보는 계정 관리 서비스에 대한 조치 및 역할을 참조하십시오.
네트워크 구역을 사용하여 계정 레벨에서 액세스를 제한할 수도 있습니다. 네트워크 영역을 사용하여 계정 수준 제한을 설정하려면 IBM Cloud 콘솔에서 관리 > IAM > 설정으로 이동하여 네트워크 영역의 이름을 입력합니다.
대상 서비스 역할 및 작업
규칙을 관리하려면 규칙을 만들려는 서비스에 대해 관리자 역할이 있는 IAM 정책을 할당받아야 합니다. 다음 표에는 서비스에 대해 가능한 액세스 역할 및 작업이 나와 있습니다.
| 역할 | 조치 |
|---|---|
| 뷰어 | 규칙 보기 |
| 편집자 | 규칙 보기 |
| 관리자 | 보기 규칙
규칙 작성 규칙 업데이트 규칙 제거 |
컨텍스트 기반 제한과 통합된 서비스
특정 IBM Cloud 서비스는 컨텍스트 기반 제한과 통합되어 있으며 이러한 서비스만 해당 리소스에 규칙을 적용할 수 있습니다. 개별 서비스에 규칙이 적용되는 방식은 서비스에 따라 결정되므로 각 서비스에 대한 설명서를 검토하여 문맥 기반 제한이 어떻게 적용되는지 파악하세요.
서비스에서 올바른 액세스 권한이 부여된 경우 다음 서비스에 대한 컨텍스트 기반 제한을 만들 수 있습니다:
| Service | 서비스 유형 | API로 범위 확장 | service_name |
|---|---|---|---|
| Activity Tracker Event Routing | 계정 관리 | 아니오 | atracker |
| App Configuration | IAM 사용 | 아니오 | apprapp |
| 카탈로그 관리 서비스 | IAM 사용 | 예 | globalcatalog-collection |
| IBM Cloud Logs | IAM 사용 | 아니오 | logs |
| IBM Cloud Monitoring | IAM 사용 | 아니오 | sysdig-monitor |
| 백업 및 복구 | IAM 사용 | 예 | backup-recovery |
| 클라우드 Object Storage | IAM 사용 | 아니오 | cloud-object-storage |
| Code Engine | IAM 사용 | 아니오 | codeengine |
| Container Registry | IAM 사용 | 아니오 | container-registry |
| 컨텍스트 기반 제한 서비스 | 계정 관리 | 아니오 | context-based-restrictions |
| Databases for DataStax | IAM 사용 | 예 | databases-for-cassandra |
| Databases for EnterpriseDB | IAM 사용 | 예 | databases-for-enterprisedb |
| Databases for Elasticsearch | IAM 사용 | 예 | databases-for-elasticsearch |
| Databases for etcd | IAM 사용 | 예 | databases-for-etcd |
| Databases for MongoDB | IAM 사용 | 예 | databases-for-mongodb |
| Databases for MySQL | IAM 사용 | 예 | databases-for-mysql |
| Databases for PostgreSQL | IAM 사용 | 예 | databases-for-postgresql |
| Databases for Redis | IAM 사용 | 예 | databases-for-redis |
| Direct Link | IAM 사용 | 아니오 | directlink |
| DNS Services | IAM 사용 | 아니오 | dns-svcs |
| Enterprise Application Service | IAM 사용 | 아니오 | enterprise-app-java |
| Event Notifications | IAM 사용 | 아니오 | event-notifications |
| Event Streams | IAM 사용 | 아니오 | messagehub |
| Hyper Protect Crypto Services | IAM 사용 | 예 | hs-crypto |
| IAM Access Groups Service | 계정 관리 | 아니오 | iam-groups |
| IAM 액세스 관리 서비스 | 계정 관리 | 아니오 | iam-access-management |
| IAM Identity Service | 계정 관리 | 아니오 | iam-identity |
| IAM 사용자 관리 | 계정 관리 | 아니오 | user-management |
| IBM Cloud® Virtual Private Cloud | IAM 사용 | 아니오 | is |
| Key Protect | IAM 사용 | 아니오 | kms |
| Kubernetes Service / Red Hat OpenShift | IAM 사용 | 예 | containers-kubernetes |
| MQ | IAM 사용 | 예 | mqcloud |
| Messages for RabbitMQ | IAM 사용 | 예 | messages-for-rabbitmq |
| Schematics | IAM 사용 | 아니오 | schematics |
| Secrets Manager | IAM 사용 | 아니오 | secrets-manager |
| IBM Cloud Security and Compliance Center Workload Protection | IAM 사용 | 아니오 | sysdig-secure |
| 태깅 서비스 | 계정 관리 | 아니오 | ghost-tags |
| Transit Gateway | IAM 사용 | 아니오 | transit |
| Watsonx.data | IAM 사용 | 아니오 | lakehouse |
IAM 사용 서비스에 대해 정의된 컨텍스트 기반 제한은 만들기 또는 삭제와 같은 플랫폼 작업에는 적용되지 않습니다. 자세한 정보는 IAM 역할 및 조치를 참조하십시오.
컨텍스트 기반 제한과 통합되는 서비스가 늘어남에 따라 어떤 서비스가 추가되는지 정기적으로 확인하세요.
컨텍스트 기반 제한사항 한계
다음 표에는 컨텍스트 기반 제한사항의 최대 한계가 나열되어 있습니다. 이러한 제한은 컨텍스트 기반 제한사항 규칙 또는 네트워크 영역을 작성할 수 있는 모든 사용자에게 적용됩니다. 자세한 정보는 컨텍스트 기반 제한사항의 내용을 참조하십시오.
한계를 늘려야 하는 특정 유스 케이스가 있는 경우, 증가를 요청할 수 있습니다. 자세한 정보는 계정 한계 증가를 참조하십시오.
| 자원 | 최대 |
|---|---|
| 계정별 컨텍스트 기반 제한사항 규칙 [1] | 4020 |
| 계정당 네트워크 구역 | 500 |
| 네트워크 구역당 IP 주소 | 1000 |
| 규칙당 IP 주소 | 1000 |
다수의 네트워크 구역이 있는 컨텍스트 기반 제한사항 규칙에서는 이와 간접적으로 연관된 최대 1000개의 IP 주소가 있을 수 있습니다. 예를 들어 두 개의 네트워크 영역이 포함된 규칙에서 한 영역에는 800개의 IP 주소가 있고 다른 영역에는 최대 200개의 IP 주소가 있을 수 있습니다.
계정에 있는 규칙의 수를 확인하려면 계정당 총 규칙 수 보기를 참조하세요. 계정 한도 증액을 요청하려면 정책 및 규칙 공유 한도 증액 요청하기를 참조하세요.
결과적 일관성
컨텍스트 기반 제한은 많은 클라우드 네이티브 서비스에 공통적으로 적용되는 결국 일관성 패턴을 따릅니다. 따라서 컨텍스트 기반 제한사항은 전 세계 여러 지역에서 고가용성 및 고성능을 유지합니다. 컨텍스트 기반 제한사항 규칙 및 네트워크 구역에 대한 변경사항은 기록되어 전 세계에 전파됩니다. 액세스 변경사항은 전파 프로세스가 완료될 때까지(일반적으로 몇 분 이내) 적용되지 않을 수 있습니다.
-
IAM 정책과 컨텍스트 기반 제한 규칙은 총 4020개의 제한을 공유합니다. ↩︎