정책 시뮬레이터

정책 시뮬레이터를 사용하면 변경사항을 커밋하기 전에 IAM 정책 변경사항이 주 구성원 액세스에 어떠한 영향을 미치는지 확인할 수 있습니다. 정책 시뮬레이터를 사용하면 변경사항으로 인해 주 구성원에게 필요한 액세스 권한이 손실되지 않도록 할 수 있습니다.

정책 시뮬레이터 작동 방식

정책 시뮬레이터를 사용하면 정책 변경사항이 사용자에게 미칠 수 있는 영향을 확인할 수 있습니다. 이 작업을 수행하기 위해 현재 정책과 제안된 정책의 권한만 비교하지 않습니다. 대신 액세스 로그를 사용하여 권한 변경사항이 실제로 사용자에게 영향을 미치는지를 중점적으로 확인합니다.

IAM 정책 변경사항이 주 구성원 액세스에 어떠한 영향을 미칠 수 있는지 확인할 수 있도록 정책 시뮬레이터는 지난 90일 동안의 액세스 시도 결과가 제안된 정책과 현재 정책에 따라 다른지를 확인합니다. 그런 다음 이러한 결과를 액세스 변경사항 목록으로 보고합니다.

IAM 정책 변경사항을 시뮬레이션할 경우 테스트하려는 변경사항이 포함된 제안된 정책을 제공합니다. 이 제안된 정책은 IAM 정책을 허용하는 리소스에 사용될 수 있습니다.

시뮬레이션을 실행하면 정책 시뮬레이터가 다음을 수행합니다.

  1. 지난 90일 동안 지원된 리소스 유형의 액세스 로그를 검색합니다. 이러한 로그가 수집되는 위치는 IAM 정책을 시뮬레이션하는 리소스에 따라 다릅니다.

    • 프로젝트나 조직의 정책을 시뮬레이션하는 경우 정책 시뮬레이터는 해당 프로젝트나 조직의 액세스 로그를 검색합니다.
    • 다른 유형의 리소스에 대한 정책을 시뮬레이션하는 경우 정책 시뮬레이터는 리소스 상위 프로젝트나 조직의 액세스 로그를 검색합니다.
    • 한 번에 리소스 정책 여러 개를 시뮬레이션하는 경우 정책 시뮬레이터는 리소스의 가장 일반적인 프로젝트나 조직의 액세스 로그를 검색합니다.

    상위 리소스가 90일 동안 존재하지 않으면 정책 시뮬레이터는 리소스 생성 이후의 모든 액세스 시도를 검색합니다.

  2. 상속된 정책과 하위 리소스에 설정된 모든 정책을 고려하여 현재 IAM 정책을 사용해 액세스 로그에 기록된 액세스 시도를 다시 평가하거나 재생합니다.

    현재 정책으로 액세스 시도를 재생하면 정책 시뮬레이터는 제안된 정책으로 인해 발생한 액세스 변경사항만 보고하며 지난 90일 동안에 수정한 다른 정책으로 인해 발생한 변경사항을 보고하지 않습니다

  3. 상속된 정책과 하위 리소스에 설정된 모든 정책을 고려한 후 제안된 IAM 정책을 사용하여 액세스 시도를 다시 재생합니다.

  4. 재생을 두 번 실행한 결과를 비교하여 제안된 변경사항이 주 구성원 액세스에 어떠한 영향을 미치는지를 보여주는 차이점을 보고합니다.

예시: 정책 변경사항 테스트

사용자의 조직 뷰어 역할(roles/resourcemanager.organizationViewer)을 삭제하려는 경우를 가정해 보겠습니다. 정책 시뮬레이터를 사용하여 이 변경사항이 사용자 액세스에 영향을 미치지 않는지 확인하려고 합니다.

Cloud Console, REST API 또는 gcloud 명령줄 도구를 사용하여 정책 변경사항을 시뮬레이션합니다.

시뮬레이션을 시작하면 정책 시뮬레이터에서 다음을 수행합니다.

  • 지난 90일 동안의 조직 액세스 로그를 검색합니다.
  • 조직의 현재 정책을 사용하여 액세스 시도를 재생합니다. 여기서 사용자는 편집자 역할을 가집니다.
  • 제안된 정책을 사용하여 액세스 시도를 다시 재생합니다. 여기서 사용자는 App Engine 관리자 역할을 가집니다.
  • 재생을 두 번 실행한 결과를 비교하여 서로 간의 차이점을 보고합니다.

그런 다음 결과를 검토하여 제안된 변경사항이 사용자 액세스에 미치는 영향을 이해할 수 있습니다.

예시: 정책 상속

다음 구조의 조직에서 폴더 Engineering의 IAM 정책 변경사항을 시뮬레이션한다고 가정해 보겠습니다.

샘플 조직 구조

Engineering에는 IAM 정책을 상속받는 상위 리소스인 조직 example.com이 있습니다. 또한 자체 IAM 정책을 포함할 수 있는 하위 프로젝트 세 개(example-prod, example-dev, example-test)가 있습니다.

제안된 정책을 제공하고 시뮬레이션을 실행합니다. 시뮬레이션을 시작하면 정책 시뮬레이터에서 다음을 수행합니다.

  • 지난 90일 동안 관련된 모든 로그를 검색합니다. Engineering은 폴더이므로 정책 시뮬레이터가 상위 조직 example.com에서 로그를 검색합니다.
  • 폴더의 현재 정책, example.com에서 상속된 정책, 하위 프로젝트 정책을 사용하여 액세스 시도를 재생합니다.
  • 제안된 정책, example.com에서 상속된 정책, 하위 프로젝트 정책을 사용하여 각 액세스 시도를 다시 재생합니다.
  • 재생 결과를 비교하여 서로 간의 차이점을 보고합니다.

그런 다음 결과를 검토하여 제안된 변경사항이 사용자 액세스에 미치는 영향을 이해할 수 있습니다.

정책 시뮬레이터 결과 검토

정책 시뮬레이터는 제안된 정책 변경사항의 영향을 액세스 변경사항 목록으로 보고합니다. 액세스 변경사항은 현재 정책이 아닌 제안된 정책과 결과가 다른 지난 90일 동안의 액세스 시도를 나타냅니다.

정책 시뮬레이터는 시뮬레이션 중에 발생한 오류도 나열하므로 시뮬레이션의 잠재적 격차를 식별할 수 있습니다.

액세스 변경사항 유형에는 여러 가지가 있습니다.

액세스 변경사항 세부정보
액세스 권한이 취소됨 현재 정책에 따라 주 구성원에게 액세스 권한이 있지만 제안된 변경 후에는 더 이상 액세스 권한이 없습니다.
액세스 권한이 취소되었을 수 있음

이 결과는 다음과 같은 원인으로 인해 발생할 수 있습니다.

  • 현재 정책에 따라 주 구성원에게 액세스 권한이 있었지만 제안된 정책에 따른 액세스 권한을 알 수 없습니다.
  • 현재 정책에 따른 주 구성원의 액세스 권한을 알 수 없으며 제안된 변경 후에는 액세스 권한이 없습니다.
액세스 권한 부여됨 현재 정책에 따라 주 구성원에게 액세스 권한이 없었지만 제안된 변경 후에는 액세스 권한이 있습니다.
액세스 권한이 부여되었을 수 있음

이 결과는 다음과 같은 원인으로 인해 발생할 수 있습니다.

  • 현재 정책에 따라 주 구성원에게 액세스 권한이 없었지만 제안된 변경 후의 액세스 권한을 알 수 없습니다.
  • 현재 정책에 따른 주 구성원의 액세스 권한을 알 수 없지만 제안된 변경 후에는 액세스 권한이 있습니다.
액세스 변경사항 알 수 없음 현재 정책과 제안된 정책 모두에 따른 주 구성원의 액세스 권한을 알 수 없으며 제안된 변경사항이 주 구성원 액세스 권한에 영향을 미칠 수 있습니다.
오류 시뮬레이션 중에 오류가 발생했습니다.

알 수 없는 결과

액세스 결과를 알 수 없는 경우는 정책 시뮬레이터에 액세스 시도를 완벽하게 평가할 수 있는 정보가 부족하다는 의미입니다.

결과를 알 수 없는 이유에는 여러 가지가 있습니다.

  • 역할 정보가 거부됨: 시뮬레이션을 실행하는 주 구성원에게 시뮬레이션하는 역할 하나 이상에 대한 역할 세부정보를 확인할 수 있는 권한이 없습니다.
  • 정책에 액세스할 수 없음: 시뮬레이션을 실행하는 주 구성원에게 시뮬레이션에 관련된 리소스 하나 이상에 대한 IAM 정책을 가져올 수 있는 권한이 없습니다.
  • 멤버십 정보가 거부됨: 시뮬레이션을 실행하는 주 구성원에게 시뮬레이션된 정책에 포함된 그룹 하나 이상의 구성원을 볼 수 있는 권한이 없습니다.
  • 지원되지 않는 조건: 테스트 중인 정책에 조건부 역할 결합이 있습니다. 정책 시뮬레이터는 조건을 지원하지 않으므로 binding을 평가할 수 없습니다.

액세스 결과를 알 수 없는 경우 정책 시뮬레이터 결과는 알 수 없는 이유뿐만 아니라 특정 역할, 정책, 멤버십 정보, 액세스하거나 평가할 수 없는 조건부를 보고합니다.

오류

정책 시뮬레이터는 시뮬레이션 중에 발생한 오류도 보고합니다. 시뮬레이션의 잠재적 차이를 이해하려면 이러한 오류를 검토해야 합니다.

정책 시뮬레이터에서 보고할 수 있는 오류 유형에는 여러 가지가 있습니다.

  • 작업 오류: 시뮬레이션을 실행할 수 없습니다.

    프로젝트나 조직에 로그가 너무 많아 시뮬레이션을 실행할 수 없음을 나타내는 오류 메시지가 표시되는 경우 리소스에 시뮬레이션을 실행할 수 없습니다.

    다른 이유로 인해 이 오류가 표시되면 시뮬레이션을 다시 실행해 봅니다. 시뮬레이션을 여전히 실행할 수 없으면 policy-simulator-feedback@google.com에 문의하세요.

  • 재생 오류: 단일 액세스 시도 재생이 실패했으므로 정책 시뮬레이터에서 제안된 정책에 따라 액세스 시도 결과가 변하는지를 확인할 수 없습니다.

  • 지원되지 않는 리소스 유형 오류: 제안된 정책은 지원되지 않는 리소스 유형과 관련된 권한에 영향을 미치므로 정책 시뮬레이터에서 시뮬레이션할 수 없습니다. 정책 시뮬레이터는 시뮬레이션 결과에 이러한 권한을 나열하므로 시뮬레이션할 수 없는 권한을 알 수 있습니다.

최대 로그 재생 크기

시뮬레이션에서 재생할 수 있는 최대 액세스 로그 수는 1,000개입니다. 지난 90일 동안 프로젝트나 조직의 액세스 로그가 1,000개를 초과하면 시뮬레이션이 실패합니다.

정책 시뮬레이터에서 검색할 액세스 로그를 결정하는 방법은 이 페이지의 정책 시뮬레이터 작동 방식을 참조하세요.

리소스 유형의 지원 수준

정책 시뮬레이터는 모든 리소스 유형을 시뮬레이션할 수 없습니다. 이로 인해 시뮬레이션할 수 있는 권한 변경사항이 영향을 받습니다.

지원되는 리소스 유형

정책 시뮬레이터는 다음 리소스 유형 지원합니다.

서비스 지원되는 리소스 유형
Cloud Storage
  • buckets
Pub/Sub
  • snapshots
  • subscriptions
  • topics
Cloud SQL
  • backupRuns
  • databases
  • instances
  • sslCerts
  • users
Cloud Spanner
  • backups
  • backupOperations
  • databases
  • databaseOperations
  • instanceConfigs
  • instanceOperations
  • instances
  • sessions
Resource Manager
  • folders
  • organizations
  • projects
Compute Engine
  • instances

지원되지 않는 리소스 유형

지원되지 않는 리소스 유형은 정책 시뮬레이터에서 액세스 로그를 검색할 수 없는 리소스 유형입니다. 정책 시뮬레이터가 리소스의 액세스 로그를 검색할 수 없으면 제안된 정책이 이러한 액세스 시도에 어떠한 영향을 미치는지 평가할 수 없습니다.

제안된 정책 변경사항이 지원되지 않는 리소스 유형에 대한 권한과 관련된 경우 정책 시뮬레이터는 시뮬레이션 결과에 이러한 권한을 나열하므로 시뮬레이션할 수 없는 권한을 알 수 있습니다. 예를 들어 정책 시뮬레이터는 AI Platform 모델을 지원하지 않습니다. 따라서 제안된 정책에서 aiplatform.models.list 권한이 있는 역할을 삭제하면 이 시뮬레이션 결과에는 aiplatform.models.list 권한을 시뮬레이션할 수 없음이 표시됩니다.

다음 단계