계층 구조 평가 이해

리소스에 조직 정책을 설정하면 해당 리소스의 모든 하위 항목은 기본적으로 조직 정책을 상속합니다. 조직 리소스에 조직 정책을 설정하면 모든 하위 리소스는 이러한 제한사항을 상속합니다.

하위 리소스에 다른 구성으로 동일한 조직 정책을 설정할 수 있으며, 이 경우 계층 구조 평가 규칙과 조직 정책에 정의된 제약조건 유형에 따라 상속된 정책을 덮어쓰거나 병합합니다.

시작하기 전에

계층 구조 예

다음 리소스 계층 구조 다이어그램에서 각 리소스는 기존 관리 제약 조건을 적용하는 조직 정책을 설정하고 정책이 상위 리소스의 정책을 상속할지 여부를 정의합니다. 색이 지정된 모양은 조직 정책에서 허용하거나 거부하는 값을 나타냅니다.

상속 다이어그램

제약 조건은 Google Cloud 서비스 또는 Google Cloud 서비스 목록에 적용되는 특정 유형의 제한사항입니다. 위의 예에서 제약조건은 제약조건이 조직 정책에 정의되지 않은 경우 동작을 정의하는 제약조건 기본값을 나타냅니다. 이 예시의 제약조건 기본값은 모든 값을 허용합니다. 아래의 노드는 값을 허용하거나 거부하여 제약 조건 기본값을 재정의하는 조직 정책을 정의합니다.

각 노드의 효과적인 정책은 상속 규칙에 따라 평가됩니다. 조직 정책이 설정되지 않은 경우 리소스는 기본 제약 조건 동작을 상속합니다. 조직 정책을 설정하면 설정된 정책이 대신 사용됩니다. 위의 예에서 조직 노드 빨간색 사각형과 녹색 원을 허용하는 정책을 정의합니다.

조직 노드 아래의 계층 구조에 있는 리소스는 다음과 같이 평가됩니다.

  1. 리소스 1inheritFromParentTRUE로 설정하고 파란색 다이아몬드를 허용하는 정책을 정의합니다. 조직 노드의 정책은 상속되고 리소스 1에 설정된 정책과 병합됩니다. 유효 정책은 빨간색 사각형, 녹색 원, 파란색 마름모를 허용하는 것으로 평가됩니다.

  2. 리소스 2inheritFromParentTRUE로 설정하고 녹색 원을 거부하는 정책을 정의합니다. 거부 값은 정책 조정 중에 항상 우선 순위를 갖습니다. 조직 노드의 정책은 상속되고 리소스 2에 설정된 정책과 병합됩니다. 유효 정책은 빨간색 사각형만 허용되도록 합니다.

  3. 리소스 3inheritFromParentFALSE로 설정하고 노란색 육각형을 허용하는 정책을 정의합니다. 조직 노드의 정책은 상속되지 않으므로 유효 정책은 노란색 육각형만 허용하는 것으로 평가됩니다.

  4. 리소스 4inheritFromParentFALSE로 설정하고 restoreDefault 값을 포함하는 정책을 정의합니다. 조직 노드의 정책은 상속되지 않고 기본 제약조건 동작이 사용되므로 유효 정책은 모든 값을 허용하는 것으로 평가됩니다.

계층 구조 평가 규칙

다음 규칙은 조직 정책이 주어진 리소스에서 평가되는 방법을 제어합니다. 조직 정책을 설정하려면 조직 정책 관리자 역할이 필요합니다.

자동으로 적용되는 제약 조건

조직 정책이 시행되지 않으면 조직 정책이 시행되는 가장 낮은 상위 항목에서 상속합니다. 상위 계층 구조에 시행되는 조직 정책이 없으면 제약조건의 Google 관리 기본 동작이 시행됩니다.

조직 정책 제약 조건의 Google 관리 기본 동작이 작업을 제한하는 경우 조직 정책을 명시적으로 정의하지 않았더라도 해당 작업이 제한됩니다. 이러한 작업을 허용하려면 상위 정책을 재정의하는 조직 정책을 만들어야 합니다.

작업을 제한하는 Google 관리 기본 동작이 있는 조직 정책 제약 조건 목록은 조직 정책 제약 조건을 참고하세요.

상속

기본적으로 조직 정책이 설정된 리소스는 계층 구조의 상위 리소스가 설정한 모든 정책을 대체합니다. 하지만 리소스가 inheritFromParent = true로 설정되면 상위 리소스의 유효한 정책이 상속되고 병합되고 조정되어 그 결과로 나온 유효 정책을 평가합니다. 예를 들면 다음과 같습니다.

  • 폴더가 projects/123 값을 거부합니다.
  • 해당 폴더 아래의 프로젝트는 projects/456 값을 거부합니다.

이 두 정책은 병합되며, 이 경우 projects/123projects/456 모두를 거부하는 유효 정책이 됩니다.

기본 동작 상속

기본 동작은 병합되지 않습니다. 정책이 설정되면 항상 기본 동작을 대체합니다. 예를 들면 다음과 같습니다.

  • constraints/iam.allowServiceAccountCredentialLifetimeExtension는 조직 수준에서 기본적으로 DENY로 설정됩니다.
  • 이 제약 조건의 경우 해당 조직 바로 아래의 프로젝트는 SomeServiceAccount 값을 허용합니다.

기본 동작은 병합되지 않고 항상 대체되므로 SomeServiceAccount를 허용하는 효과적인 정책이 생성됩니다. 반면 조직 수준에서 정책이 DENY명시적으로 설정된 경우 'DENY 값이 우선함' 규칙이 적용되고 유효 정책은 DENY가 됩니다.

상속 허용 안함

리소스에 inheritFromParent = false가 포함된 정책이 있는 경우 상위의 조직 정책을 상속하지 않습니다. 대신 리소스는 허용 또는 거부 값으로 정책을 설정하지 않는 한 제약 조건의 기본 동작을 상속합니다.

정책 충돌 조정

리소스가 조직 정책을 상속하면 상속된 정책이 상위 리소스의 조직 정책과 병합되고 조정됩니다. 목록 규칙이 있는 조직 정책을 평가할 때는 DENY 값이 항상 우선 순위를 갖습니다. 예를 들면 다음과 같습니다.

  • 폴더가 projects/123 값을 거부합니다.
  • 해당 폴더 아래의 프로젝트는 projects/123 값을 허용합니다.

정책이 병합되고 DENY 값이 우선 적용됩니다. 유효 정책은 모든 값을 거부하고 상위 리소스 또는 하위 리소스가 값을 거부하는지 여부를 동일한 방식으로 평가합니다. 허용 목록과 거부 목록 모두에 값을 포함하지 않는 것이 좋습니다. 그렇게 하면 정책을 이해하기 더 어려워질 수 있습니다.

불리언 규칙이 있는 조직 정책은 정책을 병합하거나 조정하지 않습니다. 정책이 리소스에 지정되면 TRUE 또는 FALSE 값은 유효 정책을 결정하는 데 사용됩니다. 예를 들면 다음과 같습니다.

  • 폴더가 constraints/iam.managed.disableServiceAccountCreationenforced: true를 설정합니다.

  • 해당 폴더 아래의 프로젝트는 constraints/iam.managed.disableServiceAccountCreationenforced: false를 설정합니다.

enforced: false가 프로젝트 자체에 정의되었기 때문에 폴더에 설정된 enforced: true 값은 무시됩니다. 조직 정책이 해당 프로젝트에 적용되지 않습니다.

기본 정책으로 재설정

RestoreDefault를 설정하면 조직 정책은 이 리소스에 대한 제약조건의 기본 동작을 사용합니다. 하위 리소스도 이 동작을 상속합니다.