이 페이지에는 조직, 폴더 또는 프로젝트를 보호하기 위해 계층적 보안 정책을 구성하는 방법에 대한 정보가 포함되어 있습니다. 계층적 보안 정책을 구성하기 전에 계층적 보안 정책 개요의 정보를 숙지해야 합니다.
계층적 보안 정책의 IAM 권한 설정
다음 작업에는 대상 리소스 계층 구조 노드 또는 정책 자체(이미 있는 경우)에 대한 Identity and Access Management(IAM) 역할인 Compute 조직 보안 정책 관리자 역할(roles/compute.orgSecurityPolicyAdmin
)이 필요합니다.
- 새 계층적 보안 정책 만들기
- 규칙을 추가, 업데이트 또는 삭제하여 계층적 보안 정책 수정
- 계층적 보안 정책 삭제
다음 작업에는 대상 리소스 계층 구조 노드에 대한 IAM Compute 조직 리소스 관리자 역할(roles/compute.orgSecurityResourceAdmin
)과 대상 리소스 계층 구조 노드 또는 정책 자체에 대한 Compute 조직 보안 정책 관리자 역할(roles/compute.orgSecurityPolicyAdmin
) 또는 Compute 조직 보안 정책 사용자 역할(roles/compute.orgSecurityPolicyUser
)이 필요합니다.
- 계층적 보안 정책을 리소스 계층 구조 노드와 연결
마지막으로, 다음 표에서 나열된 역할이 있는 경우 실행할 수 있는 기타 작업 목록을 확인하세요.
작업 | 역할 |
---|---|
백엔드 리소스의 모든 유효한 Google Cloud Armor 규칙 보기 |
|
organizationSecurityPolicy 에 포함된 효과적인 백엔드 리소스 보기 |
계층적 보안 정책 구성
다음 섹션에서는 계층적 보안 정책을 만들고, 리소스 계층 구조 노드와 연결하고, 노드 간에 이동하고, 삭제하는 방법과 보호된 리소스에 적용되는 모든 Google Cloud Armor 보안 정책 규칙을 보는 방법을 설명합니다.
계층적 보안 정책 만들기
gcloud beta compute org-security-policies create
명령어를 사용하여 계층적 보안 정책을 만듭니다. --organization
또는 --folder
플래그와 해당 ORGANIZATION_ID
또는 FOLDER_ID
를 사용하여 조직 또는 폴더 아래에 계층적 보안 정책을 만듭니다.
다음 예시를 사용하여 계층적 보안 정책을 만듭니다. 여기서 POLICY_NAME
은 새 보안 정책에 지정할 이름으로 바꿉니다.
조직 수준 계층적 보안 정책을 만듭니다.
gcloud beta compute org-security-policies create \ --organization=ORGANIZATION_ID \ --type=CLOUD_ARMOR \ --short-name=POLICY_NAME
폴더 수준 계층적 보안 정책을 만듭니다.
gcloud beta compute org-security-policies create \ --folder=FOLDER_ID \ --type=CLOUD_ARMOR \ --short-name=POLICY_NAME
기존 보안 정책을 리소스 계층 구조 노드와 연결
기존 보안 정책이 있는 경우 gcloud beta compute org-security-policies associations create
명령어를 사용하여 리소스 계층 구조 노드와 연결할 수 있습니다. 다음을 바꿉니다.
POLICY_ID
: 보안 정책의 IDPOLICY_NAME
: 보안 정책의 이름ORGANIZATION_ID
: 조직의 IDFOLDER_ID
: 폴더의 IDPROJECT_ID
: 프로젝트 ID계층적 보안 정책을 조직에 연결합니다.
gcloud beta compute org-security-policies associations create \ --security-policy=POLICY_ID \ --organization=ORGANIZATION_ID \ --name=ASSOCIATION_NAME
계층적 보안 정책을 폴더에 연결합니다.
gcloud beta compute org-security-policies associations create \ --security-policy=POLICY_ID \ --folder=FOLDER_ID \ --name=ASSOCIATION_NAME
계층적 보안 정책을 프로젝트에 연결합니다.
gcloud beta compute org-security-policies associations create \ --security-policy=POLICY_ID \ --project-number=PROJECT_ID \ --name=ASSOCIATION_NAME
계층적 보안 정책에서 프로젝트 제외
또한 폴더 수준 계층적 보안 정책에서 프로젝트를 제외할 수 있으며 조직 수준 계층적 보안 정책에서 프로젝트와 폴더를 모두 제외할 수 있습니다.
beta compute org-security-policies associations create
명령어와--excluded-projects
플래그를 사용하여 계층적 보안 정책에서 프로젝트를 제외할 수 있습니다.다음 예시 명령어는 ID가
2000000002
인 프로젝트를 제외하면서 보안 정책example-policy
를 조직10000001
와 연결합니다.gcloud beta compute org-security-policies associations create \ --security-policy=example-policy \ --excluded-projects="projects/2000000002" \ --organization=10000001
--excluded-folders
플래그와 함께beta compute org-security-policies associations create
명령어를 사용하여 조직 수준 계층적 보안 정책에서 폴더를 제외할 수 있습니다.다음 예시 명령어는 ID가
3000000003
인 폴더를 제외하면서 보안 정책example-policy
를 조직10000001
와 연결합니다.gcloud beta compute org-security-policies associations create \ --security-policy=example-policy \ --excluded-folders="folders/3000000003" \ --organization=10000001
계층적 보안 정책 이동
gcloud beta compute org-security-policies move
를 사용하여 계층적 보안 정책을 다른 상위 리소스 계층 구조 노드로 이동하여 계층적 보안 정책의 상위를 변경할 수 있습니다.
첫 번째 플래그로 소스를, 두 번째 플래그로 대상을 제공합니다.
계층적 보안 정책을 이동하면 소유권이 변경되지만 연결된 리소스는 변경되지 않습니다. 조직과 폴더만 계층적 보안 정책을 소유할 수 있으므로 프로젝트 아래로 이동할 수 없습니다.
다음 예에서는 계층적 보안 정책을 조직 ORGANIZATION_ID
에서 폴더 FOLDER_ID
로 이동합니다.
gcloud beta compute org-security-policies move policy-1 \ --organization ORGANIZATION_ID \ --folder FOLDER_ID
계층적 보안 정책 삭제
계층적 보안 정책을 삭제하려면 먼저 정책과 리소스 계층 구조 노드 간의 모든 연결을 삭제해야 합니다. 다음 예에서는 beta compute org-security-policies associations delete
명령어를 사용하여 POLICY_NAME
이라는 이름의 계층적 보안 정책과 ORGANIZATION_ID
조직 간의 ASSOCIATION_NAME
이라는 연결을 삭제합니다.
gcloud beta compute org-security-policies associations delete ASSOCIATION_NAME \ --security-policy=POLICY_NAME \ --organization=ORGANIZATION_ID
보안 정책에 연결된 항목이 하나가 아닌 경우 각 연결에 대해 이전 단계를 반복합니다. 계층적 보안 정책에 연결이 없으면 다음 예와 같이 compute org-security-policies delete
명령어를 사용하여 삭제할 수 있습니다.
gcloud beta compute org-security-policies delete POLICY_NAME \ --organization=ORGANIZATION_ID
보호된 리소스의 모든 유효한 Google Cloud Armor 규칙 보기
gcloud beta compute backend-services get-effective-security-policies
명령어를 사용하여 보호된 리소스에 적용되는 모든 Google Cloud Armor 보안 정책 규칙을 볼 수 있습니다. 다음 예시에서 RESOURCE_NAME
을 확인할 보호 리소스의 이름으로 바꿉니다.
gcloud beta compute backend-services get-effective-security-policies PROTECTED_RESOURCE
사용 사례
다음 섹션에서는 계층적 보안 정책의 사용 사례를 설명합니다.
조직의 모든 애플리케이션 부하 분산기에 대한 특정 IP 주소의 트래픽 거부
계층적 보안 정책을 사용하여 전체 조직 네트워크에 액세스할 수 없는 IP 주소 목록을 관리하거나 특정 지역 또는 국가의 트래픽을 거부할 수 있습니다. 이를 통해 회사별 보안 문제를 해결하거나 규정 준수를 유지할 수 있습니다. 다음 단계에서는 IP 주소 범위 192.0.2.0/24
의 트래픽을 거부하는 조직 수준 계층적 보안 정책을 만드는 방법을 보여줍니다.
ID가 1000000001인 조직에 연결된
org-level-deny-ip-policy
라는 계층식 보안 정책을 만듭니다.gcloud beta compute org-security-policies create \ --organization=1000000001 \ --type=CLOUD_ARMOR \ --description= "this is an org policy to deny a set of IP addresses for all resources" \ --short-name=org-level-deny-ip-policy
IP 주소 범위
192.0.2.0/24
의 일치 조건과deny
작업이 있는 우선순위1000
의 규칙을 추가합니다.gcloud beta compute org-security-policies rules create 1000 \ --action=deny \ --security-policy=org-level-deny-ip-policy \ --organization=1000000001 \ --description "Deny traffic from 192.0.2.0/24" \ --src-ip-ranges "192.0.2.0/24"
마지막으로 보안 정책을 조직과 연결하여
192.0.2.0/24
IP 주소에서 조직의 모든 서비스로의 요청을 거부합니다.gcloud beta compute org-security-policies associations create \ --security-policy=org-level-deny-ip-policy \ --organization=ORGANIZATION_ID
조직 내 일부 프로젝트에 소스 IP 주소 집합에 대한 액세스 권한 부여
조직 내 일부 프로젝트에 대한 액세스 권한을 IP 주소 또는 여러 IP 주소에 부여할 수 있습니다. 신뢰할 수 있는 업스트림 프록시가 있고 이를 일부 프로젝트에서만 규칙 평가에서 제외하려는 경우 이 방법을 사용할 수 있습니다. 다음 Cloud CDN 기반 예에서는 폴더 수준 계층적 보안 정책을 사용하여 조직 10000001
의 프로젝트 이름이 project-1
, project-2
, project-3
인 프로젝트에 IP 주소 범위 192.0.2.0/24
액세스 권한을 부여합니다.
다음 명령어를 사용하여
project-1
,project-2
,project-3
을 ID가20000002
인 폴더로 이동합니다.gcloud projects move project-1 --folder=20000002 gcloud projects move project-2 --folder=20000002 gcloud projects move project-3 --folder=20000002
다음 명령어를 사용하여
org-level-proxy-filtering
이라는 보안 정책을 만듭니다.gcloud beta compute org-security-policies create \ --folder=20000002 \ --type=CLOUD_ARMOR \ --short-name=org-level-proxy-filtering
IP 주소 범위
192.0.2.0/24
의 일치 조건과goto_next
규칙 작업이 있는 우선순위1000
의 규칙을 추가합니다. 요청이 이 조건과 일치하면 Google Cloud Armor는 이 보안 정책 내에서 규칙 평가를 중지합니다.gcloud beta compute org-security-policies rules create 1000 \ --action=goto_next \ --security-policy=org-level-proxy-filtering \ --organization=10000001 \ --src-ip-ranges="192.0.2.0/24"
선택사항:
192.0.2.0/24
에서 발생하지 않은 요청에 대해 이러한 프로젝트에 보안 정책 규칙을 적용하려면1000
보다 낮은 우선순위로 규칙을 추가합니다. 이 단계는 나중에 실행해도 됩니다.다음 명령어를 사용하여 1단계에서 프로젝트를 이동한 ID
20000002
의 폴더에 정책을 연결합니다.gcloud beta compute org-security-policies associations create \ --security-policy=org-level-proxy-filtering \ --folder=20000002