제약조건 이해

제약조건은 Google Cloud 서비스 또는 Google Cloud 서비스 목록에 대한 일종의 제한사항입니다. 제약조건은 제어할 동작을 정의하는 청사진과 같습니다. 이 청사진은 리소스 계층 구조 노드에 제약조건에서 정의된 규칙을 구현하는 조직 정책으로 적용됩니다. 해당 제약조건에 매핑되고 해당 리소스 계층 구조 노드와 연결된 Google Cloud 서비스는 조직 정책 내에서 구성된 제한사항을 시행합니다.

제약조건에는 유형이 있습니다. 이 유형은 시행 여부를 확인하기 위해 입력하고 사용할 수 있는 조직 정책 값을 결정합니다. 시행 중인 Google Cloud 서비스는 제약조건 유형과 값을 평가하여 제한사항을 결정합니다. 자세한 내용은 조직 정책 제약조건을 참조하세요.

계층 구조 평가 시 현재 리소스 계층 구조 노드에 설정된 조직 정책이 적용됩니다. inheritFromParentTRUE로 설정된 경우 상속 정책과 병합하여 적용됩니다.

제약조건 속성

모든 제약조건은 다음 속성으로 정의됩니다.

  • 이름: 제약조건의 고유한 이름입니다.
    • 예를 들면 constraints/compute.disableSerialPortAccess입니다.
  • 표시 이름: 제약조건의 사용자 친화적인 이름입니다.
  • 설명: Google Cloud 서비스별로 시행되는 제약조건에 대한 세부정보입니다.
  • 기본 동작: 정책 내에 사용자 정의 구성이 없는 경우의 동작입니다.

제약조건 유형

목록 제약조건

목록 제약조건은 조직 정책에 정의된 값의 목록을 허용하거나 허용하지 않습니다. 이 값 목록은 계층 구조 하위 트리 문자열로 표현됩니다. 하위 트리 문자열은 제약조건이 적용되는 리소스 유형을 지정합니다. 예를 들어 constraints/compute.trustedImageProjects의 경우 projects/PROJECT_ID 형식의 프로젝트 ID 목록입니다.

다음 표에서는 정책 시행을 위한 일반적인 제약조건 구성에 대해 설명합니다.

정책 제약조건 구성
특정 값 집합 허용 허용된 값 필드(ListPolicy.allowed_values)를 문자열 목록으로 설정
ListPolicy.all_valuesALL_VALUES_UNSPECIFIED로 설정
특정 값 집합 거부 거부된 값 필드(ListPolicy.denied_values)를 문자열 목록으로 설정
ListPolicy.all_valuesALL_VALUES_UNSPECIFIED로 설정
값 및 모든 하위 값 거부 거부된 값 필드(ListPolicy.denied_values)를 하위 트리 문자열(예: organizations/1234)로 설정
ListPolicy.all_valuesALL_VALUES_UNSPECIFIED로 설정
모든 유효한 값 허용 ListPolicy.all_valuesALLOW로 설정
ListPolicy.allowed_values 또는 ListPolicy.denied_values를 설정하지 않음
모든 값 거부 ListPolicy.all_valuesDENY로 설정
ListPolicy.allowed_values 또는 ListPolicy.denied_values를 설정하지 않음

값에 prefix:value 형식의 프리픽스를 지정하면 값에 의미를 추가할 수 있습니다.

  • is:: - 정확한 값과의 비교를 적용합니다. 프리픽스가 없는 것과 같은 동작으로 값에 콜론이 포함되는 경우 필수 항목입니다.
  • under:: - 값 및 모든 하위 값과의 비교를 적용합니다. 이 프리픽스를 통해 리소스가 허용되거나 거부되는 경우 하위 리소스도 거부됩니다. 제공된 값은 아래 예와 같이 계층 구조 하위 트리 문자열이어야 합니다.
    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
    • projects/PROJECT_ID

일부 제약조건은 계층 구조 하위 트리 문자열을 값으로 사용할 수 없습니다. 계층 구조 하위 트리 값 프리픽스의 사용을 지원하는 제약조건에 대한 자세한 내용은 조직 정책 제약조건을 참조하세요.

계층 구조 하위 트리 값 프리픽스는 베타 기능으로, 이전 버전과 호환되지 않는 방식으로 변경될 수 있으며 SLA 또는 지원 중단 정책이 적용되지 않습니다. 제약조건에서 프리픽스가 있는 값을 사용하는 방법은 계층 구조 하위 트리에 시행하도록 설정을 참조하세요.

값 목록이 제공되지 않으면 특정 제약조건에 따라 다음과 같은 기본값이 적용될 수 있습니다.

  • ALLOW - 유효한 값이 모두 허용됩니다.
  • DENY - 모든 값이 허용되지 않습니다.

부울 제약조건

부울 제약조건은 시행 여부와 관계됩니다. 정책은 Policy.enforcedTrue로 설정하면 시행됩니다.

예를 들어 constraints/compute.disableSerialPortAccess는 다음과 같은 두 가지 상태가 가능합니다.

  • TRUE - disableSerialPortAccess 제약조건이 시행되고, 직렬 포트 액세스가 허용되지 않습니다.
  • FALSE - disableSerialPortAccess 제약조건이 시행되거나 선택되지 않으므로 직렬 포트 액세스가 허용됩니다.

정책이 설정되지 않은 경우 또는 정책이 RestoreDefault로 설정된 경우 제약조건 기본값을 허용하므로 직렬 포트 액세스가 허용됩니다.