IAM 정책 분석

이 페이지에서는 정책 분석기를 사용하여 어떤 ID 또는 어떤 주 구성원(사용자, 서비스 계정, 그룹, 도메인)이 Google Cloud 리소스에 대해 갖고 있는 액세스 권한이 무엇인지 확인하는 방법을 보여줍니다.

'정책 분석기를 통해 답을 얻을 수 있는 일반적인 질문은 다음과 같습니다. '이 IAM 서비스 계정에 액세스할 수 있는 사용자는 누구인가요?' '개인 식별 정보(PII)가 포함된 BigQuery 데이터 세트의 데이터를 읽을 수 있는 사용자는 누구인가요?' 또는 '날짜/시간 X에 Cloud Storage 버킷에 액세스할 수 있는 사용자는 누구인가요?'

AnalyzeIamPolicy 메서드를 사용하여 분석 요청을 실행한 다음 응답에 결과를 가져올 수 있습니다. 처리해야 하는 데이터 양에 따라 분석 결과가 불완전할 수 있습니다. 전체 결과를 가져오거나, 추가 분석을 위해 결과를 작성하거나, 직접 저장하려면 AnalyzeIamPolicyLongrunning을 사용하여 BigQuery 또는 Cloud Storage에 쓸 수 있습니다.

개요

정책 분석기를 사용하면 액세스 관리를 수행하고 액세스 공개 상태를 제공하며 감사 및 규정 준수 관련 작업에 사용할 수도 있습니다.

특히 다음 내용이 해당됩니다.

  • 정책 분석기는 리소스 및 정책 계층 구조와 상속을 지원합니다. 유효 정책을 분석할 때는 지정된 분석 범위 아래에 있는 상속된 정책 및 리소스 계층 구조가 고려됩니다.
  • 정책 분석기는 사용자 그룹 확장을 지원하므로 사용자가 그룹에 포함된 경우에도 액세스 식별에 도움이 될 수 있습니다.
  • 정책 분석기는 권한 확장 역할을 지원하며, 이를 통해 권한 또는 역할로 쿼리할 수 있으므로 쿼리의 유연성이 높아집니다.
  • 정책 분석기는 리소스 계층 구조 내에서 제한된 리소스 확장 집합을 지원합니다. 예를 들어 쿼리 결과에서 프로젝트 내의 모든 VM 인스턴스 또는 폴더의 모든 프로젝트를 확장할 수 있습니다.
  • 정책 분석기는 IAM 조건부 역할 바인딩을 지원하지만 요청에 대한 추가 컨텍스트가 필요할 수 있습니다. 예를 들어 날짜/시간 속성을 기준으로 조건을 분석하려면 정책 분석기에 요청 시점이 필요합니다. 이 기능은 API 및 gcloud 도구를 통해서만 지원됩니다.
  • IAM 정책 분석 시 정책 분석기는 여러 수준에서 '연결된' 명의 도용을 비롯하여 서비스 계정 명의 도용 분석을 지원합니다. 정책 분석기는 서비스 계정을 통해 모든 간접 액세스를 분석하는 데 도움이 됩니다. 이 기능은 API 및 gcloud 도구를 통해서만 지원됩니다.

예를 들어 다음 분석 사용 사례와 같이 이용하는 것이 가능합니다.

  • 리소스에 액세스할 수 있는 주 구성원 확인: 지정된 리소스에 대한 액세스 권한이 부여된 주 구성원을 찾습니다. 이 유형의 분석을 사용하면 다음과 같은 질문에 대한 답을 얻을 수 있습니다.

    • '이 IAM 서비스 계정에 대한 액세스 권한이 있는 사람은 누구인가요?'
    • '이 IAM 서비스 계정을 가장할 수 있는 권한이 있는 사람은 누구인가요?'
    • '프로젝트 A의 결제 관리자는 누구인가요?'
    • (API 및 gcloud 도구만 해당) '서비스 계정을 가장하여 프로젝트 A를 업데이트할 수 있는 사용자는 누구인가요?'
  • 특정 역할 또는 권한이 있는 주 구성원 확인: 관련 리소스에 지정된 역할/권한이 있는 주 구성원을 찾습니다. 이 유형의 분석을 사용하면 다음과 같은 질문에 대한 답을 얻을 수 있습니다.

    • '조직의 서비스 계정을 가장할 수 있는 권한이 있는 사람은 누구인가요?'
    • '조직의 결제 관리자가 누구인가요?'
    • (API 및 gcloud 도구만 해당) '조직에서 서비스 계정을 가장하여 BigQuery 데이터 세트를 읽을 수 있는 사람은 누구인가요?'
  • 주 구성원이 리소스에 대해 갖는 액세스 권한 확인: 지정된 리소스에 대해 지정된 주 구성원에게 부여된 액세스 권한을 확인합니다. 이 유형의 분석을 사용하면 다음과 같은 질문에 대한 답을 얻을 수 있습니다.

    • '이 BigQuery 데이터 세트에 대해 사용자 Ivy가 가진 역할과 권한은 무엇인가요?'
    • 'dev-testers 그룹이 이 프로젝트의 모든 리소스에 대해 갖는 역할 및 권한은 무엇인가요?'
    • (API 및 gcloud 도구만 해당) '사용자 Ivy가 서비스 계정을 가장할 경우 이 BigQuery 데이터 세트에 대해 갖는 역할 및 권한은 무엇인가요?'
  • 주 구성원이 액세스할 수 있는 리소스 확인: 주 구성원이 액세스할 수 있도록 권한이 부여된 리소스를 찾습니다. 이 정보는 다음과 같은 질문에 대한 답이 필요할 때 사용할 수 있습니다.

    • '사용자 Ivy에게 읽기 권한이 있는 BigQuery 데이터 세트는 무엇인가요?'
    • '어떤 BigQuery 데이터 세트가 데이터 소유자의 dev-testers 그룹인가요?'
    • '프로젝트 A에서 John이 삭제할 수 있는 VM은 무엇인가요?'
    • (API 및 gcloud 도구만 해당) '사용자 John이 서비스 계정을 가장하여 삭제할 수 있는 VM은 무엇인가요?'
  • 조건부 액세스 결정: 주 구성원이 지정된 조건 속성에 액세스할 수 있는 리소스를 찾습니다. 이 정보는 다음과 같은 질문에 대한 답이 필요할 때 사용할 수 있습니다.

    • (API 및 gcloud 도구만 해당): '특정 시점에 특정 인스턴스에서 compute.instances.get 또는 compute.instances.start 권한이 있는 주 구성원은 누구인가요?'

시작하기 전에

  • 프로젝트에 Cloud Asset API를 사용 설정해야 합니다.

  • API를 사용하여 이러한 쿼리를 실행하는 경우 환경 및 gcurl을 설정해야 합니다.

    1. 환경을 설정합니다.

    2. gcurl 별칭을 설정하려면 다음 단계를 완료합니다.

      Compute Engine 인스턴스를 사용하는 경우 다음 명령어를 실행합니다.

      alias gcurl='curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
      

      Compute Engine 인스턴스를 사용하지 않는 경우 다음 명령어를 실행합니다.

      alias gcurl='curl -H "$(oauth2l header --json CREDENTIALS cloud-platform)" \
      -H "Content-Type: application/json" -X POST -H "X-HTTP-Method-Override: GET"'
      

      여기서 CREDENTIALS는 사용자 인증 정보 파일 경로입니다(예: ~/credentials.json).

필수 권한

정책 분석을 실행하려면 다음 권한이 필요합니다.

범위에 대한 권한

정책을 분석하려면 분석 중인 범위에 대한 다음 IAM 권한이 필요합니다.

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies

이러한 권한은 사전 정의된 다음 역할에 포함되어 있습니다.

  • Cloud 애셋 소유자(roles/cloudasset.owner)
  • Cloud 애셋 뷰어(roles/cloudasset.viewer)

Cloud Asset API 권한 및 역할에 대한 자세한 내용은 액세스 제어를 참조하세요.

IAM 역할의 권한

요청에서 폴더 또는 프로젝트를 범위로 지정할 때 분석에서 조직 수준에 정의된 IAM 커스텀 역할이 있는 주 구성원을 발견한 경우 분석이 사용자 대신 정의를 사용할 수 있도록 IAM 맞춤 역할에 대한 iam.roles.get 권한이 필요합니다.

Google Workspace 그룹 구성원 권한

리소스에 액세스할 수 있는 주 구성원을 선택할 때 그룹의 구성원을 확장하려고 하면 최종 사용자 인증 정보가 있는 구성원으로 그룹을 확장합니다. 따라서 구성원을 볼 수 있는 권한이 있는 그룹의 구성원만 볼 수 있습니다.

주 구성원이 리소스에 대해 갖고 있는 액세스 권한이나 주 구성원이 액세스할 수 있는 리소스를 확인하기 위한 쿼리를 만들 때는 주 구성원을 지정합니다. 지정된 주 구성원이 속한 그룹(직접 또는 간접)을 찾아보겠습니다. 최종 사용자 인증 정보가 사용되고 구성원을 볼 권한이 있는 그룹만 볼 수 있다는 점에 유의하세요.

멤버십을 보려면 주 구성원에게 groups.read 권한이 부여되어 있어야 합니다. 이 권한이 포함된 역할에는 그룹스 리더 관리자 역할 또는 그룹스 관리자 또는 최고 관리자와 같은 더 강력한 역할이 포함됩니다. 자세한 내용은 이 주제를 참조하세요.

분석 쿼리

분석 쿼리는 범위, 하나 이상의 선택기, 기타 고급 옵션으로 구성됩니다.

범위

각 분석 쿼리에 대해 조직, 폴더 또는 프로젝트 등의 범위를 지정해야 합니다. 해당 범위(범위가 지정된 리소스 수준 이하)에 정의된 모든 IAM 정책이 분석에 포함됩니다. 따라서 범위가 지정된 리소스 수준 위에 정의된 IAM 정책은 분석에서 고려되지 않습니다.

리소스 선택기

리소스 선택기를 사용하면 지정된 범위 내에서 누가 어떤 액세스 권한을 가지고 있는지 분석할 수 있는 리소스 한 개를 지정할 수 있습니다.

자세한 내용은 IamPolicyAnalysisQuery 참조를 확인하세요.

ID 선택기

ID 선택기를 사용하면 지정된 범위 내에서 지정된 ID가 액세스할 수 있는 리소스를 분석할 수 있는 ID를 지정할 수 있습니다.

자세한 내용은 IamPolicyAnalysisQuery 참조를 확인하세요.

액세스 선택기

액세스 선택기를 사용하면 여러 역할 또는 권한을 지정하여 지정된 범위의 리소스에 대해 누가 이러한 권한을 부여받았는지 확인할 수 있습니다.

자세한 내용은 IamPolicyAnalysisQuery 참조를 확인하세요.

고급 옵션

범위와 선택기 외에 쿼리에서 다른 고급 옵션을 지정하여 더 많은 결과를 다시 얻을 수도 있습니다.

자세한 내용은 IamPolicyAnalysisQuery 참조를 확인하세요.

리소스에 액세스할 수 있는 주 구성원 확인

정책 분석기를 사용하면 프로젝트, 폴더, 조직의 특정 리소스에 대한 특정 역할 또는 권한이 있는 주 구성원을 확인할 수 있습니다. 이 정보를 가져오려면 액세스를 분석할 리소스와 확인할 하나 이상의 역할 또는 권한이 포함된 쿼리를 만듭니다.

Console

  1. Cloud Console에서 정책 분석기 페이지로 이동합니다.

    정책 분석기 페이지로 이동

  2. 템플릿에서 쿼리 만들기 섹션에서 맞춤설정된 쿼리 빌드를 클릭합니다.

  3. 쿼리 범위 선택 필드에서 쿼리 범위를 지정할 프로젝트, 폴더 또는 조직을 선택합니다. 정책 분석기는 프로젝트, 폴더, 조직뿐 아니라 프로젝트, 폴더 또는 조직 내의 모든 리소스에 대한 액세스를 분석합니다.

  4. 확인할 리소스와 확인할 역할 또는 권한을 선택합니다.

    1. 매개변수 1 필드의 드롭다운 메뉴에서 리소스를 선택합니다.
    2. 리소스 필드에 액세스를 분석할 리소스의 전체 리소스 이름을 입력합니다. 전체 리소스 이름을 모르면 리소스의 표시 이름을 입력하기 시작한 다음 제공된 리소스 목록에서 리소스를 선택합니다.
    3. 선택기 추가를 클릭합니다.
    4. 매개변수 2 필드에서 역할 또는 권한을 선택합니다.
    5. 역할 선택 또는 권한 선택 필드에서 확인할 역할 또는 권한을 선택합니다.
    6. 선택사항: 추가 역할 및 권한을 확인하려면 확인하려는 역할 및 권한이 모두 나열될 때까지 역할권한 선택기를 계속 추가합니다.
  5. 선택사항: 계속을 클릭한 후 이 쿼리에 사용할 고급 옵션을 선택합니다.

  6. 커스텀 쿼리 창에서 쿼리 실행을 클릭합니다. 보고서 페이지에는 입력한 쿼리 매개변수와 지정된 리소스에 대한 지정된 역할 또는 권한이 있는 모든 주 구성원의 결과 표가 표시됩니다.

gcloud

API가 사용 설정된 프로젝트에서 asset analyze-iam-policy gcloud 명령어를 사용하여 AnalyzeIamPolicy를 호출할 수 있습니다. Cloud SDK 버전 314.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

ORG_ID에서 FULL_RESOURCE_NAME에 대한 COMMA_SEPARATED_PERMISSIONS가 있는 주 구성원을 확인하려면 다음 안내를 따르세요.

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

예를 들어 조직 1234567890의 Compute Engine 인스턴스 ipa-gce-instance-2에서 compute.instances.get 또는 compute.instances.start 권한이 있는 주 구성원을 확인하려면 다음 안내를 따르세요.

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. IAM 정책을 분석하고 gcurl 별칭을 사용하여 결과를 작성합니다.

  2. 요청 본문용으로 request.json 파일을 만들고 콘텐츠를 JSON 형식의 분석 요청으로 설정합니다.

    예를 들어 다음 요청 본문에서는 Compute Engine 인스턴스 ipa-gce-instance-2에 대해 compute.instances.get 또는 compute.instances.start 권한이 있는 사용자를 확인합니다.

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. 다음 gcurl 명령어를 사용하여 IAM 정책을 분석합니다.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    여기서 ORG_ID는 조직 ID입니다(예: 1234567890).

특정 역할 또는 권한이 있는 주 구성원 확인

정책 분석기를 사용하면 조직의 Google Cloud 리소스에 대한 특정 역할이나 권한이 있는 주 구성원을 확인할 수 있습니다. 이 정보를 가져오려면 확인할 역할 또는 권한을 한 개 이상 포함하지만 리소스를 지정하지 않는 쿼리를 만드세요.

Console

  1. Cloud Console에서 정책 분석기 페이지로 이동합니다.

    정책 분석기 페이지로 이동

  2. 템플릿에서 쿼리 만들기 섹션에서 맞춤설정된 쿼리 빌드를 클릭합니다.

  3. 쿼리 범위 선택 필드에서 쿼리 범위를 지정할 프로젝트, 폴더 또는 조직을 선택합니다. 정책 분석기는 프로젝트, 폴더, 조직뿐 아니라 프로젝트, 폴더 또는 조직 내의 모든 리소스에 대한 액세스를 분석합니다.

  4. 매개변수 1 필드에서 역할 또는 권한을 선택합니다.

  5. 역할 선택 또는 권한 선택 필드에서 확인할 역할 또는 권한을 선택합니다.

  6. 선택사항: 추가 역할과 권한을 확인하려면 다음을 수행합니다.

    1. 선택기 추가를 클릭합니다.
    2. 매개변수 2 필드에서 역할 또는 권한을 선택합니다.
    3. 역할 선택 또는 권한 선택 필드에서 확인할 역할 또는 권한을 선택합니다.
    4. 확인할 모든 역할과 권한이 나열될 때까지 역할권한 선택기를 계속 추가합니다.
  7. 선택사항: 계속을 클릭한 후 이 쿼리에 사용할 고급 옵션을 선택합니다.

  8. 커스텀 쿼리 창에서 쿼리 실행을 클릭합니다. 보고서 페이지에는 입력한 쿼리 매개변수와 범위 내 리소스에 대해 지정된 역할 또는 권한이 있는 모든 주 구성원의 결과 테이블이 표시됩니다.

gcloud

API가 사용 설정된 프로젝트에서 asset analyze-iam-policy gcloud 명령어를 사용하여 AnalyzeIamPolicy를 호출할 수 있습니다. Cloud SDK 버전 314.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

ORG_ID에서 COMMA_SEPARATED_PERMISSIONS가 있는 주 구성원을 확인하려면 다음을 실행합니다.

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

예를 들어 조직 1234567890에서 compute.instances.get 또는 compute.instances.start 권한이 있는 주 구성원을 확인하려면 다음을 실행하세요.

gcloud asset analyze-iam-policy --organization="1234567890" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. IAM 정책을 분석하고 gcurl 별칭을 사용하여 결과를 작성합니다.

  2. 요청 본문용으로 request.json 파일을 만들고 콘텐츠를 JSON 형식의 분석 요청으로 설정합니다.

    예를 들어 다음 요청 본문에서는 관련 리소스에 대한 compute.instances.get 또는 compute.instances.start 권한이 있는 주 구성원을 확인합니다.

    {
      "analysisQuery": {
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. 다음 gcurl 명령어를 사용하여 IAM 정책을 분석합니다.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    여기서 ORG_ID는 조직 ID입니다(예: 1234567890).

주 구성원이 리소스에서 가진 액세스 권한 확인

정책 분석기를 사용하면 주 구성원이 조직의 리소스에 대해 갖는 역할 또는 권한을 확인할 수 있습니다. 이 정보를 가져오려면 액세스 권한을 분석하려는 주 구성원과 리소스를 포함하는 쿼리를 만듭니다.

Console

1. Cloud Console에서 정책 분석기 페이지로 이동합니다.

  <a class="button button-primary" href="https://console.cloud.google.com/iam-admin/analyzer"
  target="console" track-type="task" track-name="consoleLink"
  track-metadata-position="body" track-metadata-end-goal="queryOnPrincipalWithResource">
  Go to the Policy analyzer page</a>
  1. 템플릿에서 쿼리 만들기 섹션에서 맞춤설정된 쿼리 빌드를 클릭합니다.
  2. 쿼리 범위 선택 필드에서 쿼리 범위를 지정할 프로젝트, 폴더 또는 조직을 선택합니다. 정책 분석기는 프로젝트, 폴더, 조직뿐 아니라 프로젝트, 폴더 또는 조직 내의 모든 리소스에 대한 액세스를 분석합니다.
  3. 확인할 리소스와 주 구성원을 선택합니다.

    1. 매개변수 1 필드의 드롭다운 메뉴에서 리소스를 선택합니다.
    2. 리소스 필드에 액세스를 분석할 리소스의 전체 리소스 이름을 입력합니다. 전체 리소스 이름을 모르면 리소스의 표시 이름을 입력하기 시작한 다음 제공된 리소스 목록에서 리소스를 선택합니다.
    3. 선택기 추가를 클릭합니다.
    4. 매개변수 2 필드의 드롭다운 메뉴에서 주 구성원을 선택합니다.
    5. 주 구성원 필드에 사용자, 서비스 계정 또는 그룹의 이름을 입력합니다. 그런 다음 제공된 주 구성원 목록에서 액세스를 분석하려는 사용자, 서비스 계정 또는 그룹을 선택합니다.
  4. 선택사항: 계속을 클릭한 후 이 쿼리에 사용할 고급 옵션을 선택합니다.

  5. 커스텀 쿼리 창에서 쿼리 실행을 클릭합니다. 보고서 페이지에는 입력한 쿼리 매개변수와 지정된 주 구성원이 지정한 리소스에 대한 모든 역할의 결과 표가 표시됩니다.

gcloud

API가 사용 설정된 프로젝트에서 asset analyze-iam-policy gcloud 명령어를 사용하여 AnalyzeIamPolicy를 호출할 수 있습니다. Cloud SDK 버전 314.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

ORG_IDFULL_RESOURCE_NAME에 대해 USER에게 부여된 역할 또는 권한을 확인하려면 다음을 실행하세요.

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --identity="USER"

예를 들어 조직 1234567890에서 사용자 user1@example.com에게 Compute Engine 인스턴스 ipa-gce-instance-2에 대해 부여된 역할이나 권한을 확인하는 방법은 다음과 같습니다.

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --identity="user:user1@example.com"

REST

  1. IAM 정책을 분석하고 gcurl 별칭을 사용하여 결과를 작성합니다.

  2. 요청 본문용으로 request.json 파일을 만들고 콘텐츠를 JSON 형식의 분석 요청으로 설정합니다.

    예를 들어 다음 요청 본문에서는 사용자 user1@example.com이 Compute Engine 인스턴스 ipa-gce-instance-2에서 부여받은 역할 또는 권한을 확인합니다.

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "identitySelector": {
          "identity": "user:user1@example.com"
        }
      }
    }
    
  3. 다음 gcurl 명령어를 사용하여 IAM 정책을 분석합니다.

    gcurl -d @request.json \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    여기서 ORG_ID는 조직 ID입니다(예: 1234567890).

주 구성원이 액세스할 수 있는 리소스 확인

정책 분석기를 사용하면 조직 내에서 주 구성원이 특정 역할 또는 권한이 있는 리소스를 확인할 수 있습니다. 이 정보를 가져오려면 분석할 액세스 권한이 있는 주 구성원 및 확인할 권한 또는 역할을 1개 이상 포함하는 쿼리를 만드세요.

Console

  1. Cloud Console에서 정책 분석기 페이지로 이동합니다.

    정책 분석기 페이지로 이동

  2. 템플릿에서 쿼리 만들기 섹션에서 맞춤설정된 쿼리 빌드를 클릭합니다.

  3. 쿼리 범위 선택 필드에서 쿼리 범위를 지정할 프로젝트, 폴더 또는 조직을 선택합니다. 정책 분석기는 프로젝트, 폴더, 조직뿐 아니라 프로젝트, 폴더 또는 조직 내의 모든 리소스에 대한 액세스를 분석합니다.

  4. 확인할 주 구성원 및 확인할 역할이나 권한을 선택합니다.

    1. 매개변수 1 필드의 드롭다운 메뉴에서 주요을 선택합니다.
    2. 주 구성원 필드에 사용자, 서비스 계정 또는 그룹의 이름을 입력합니다. 그런 다음 제공된 주 구성원 목록에서 액세스를 분석하려는 사용자, 서비스 계정 또는 그룹을 선택합니다.
    3. 선택기 추가를 클릭합니다.
    4. 매개변수 2 필드에서 역할 또는 권한을 선택합니다.
    5. 역할 선택 또는 권한 선택 필드에서 확인할 역할 또는 권한을 선택합니다.
    6. 선택사항: 추가 역할 및 권한을 확인하려면 확인하려는 역할 및 권한이 모두 나열될 때까지 역할권한 선택기를 계속 추가합니다.
  5. 선택사항: 계속을 클릭한 후 이 쿼리에 사용할 고급 옵션을 선택합니다.

  6. 커스텀 쿼리 창에서 쿼리 실행을 클릭합니다. 보고서 페이지에는 입력한 쿼리 매개변수와 지정된 주 구성원이 지정된 역할 또는 권한을 가지는 모든 리소스의 결과 테이블이 표시됩니다.

gcloud

API가 사용 설정된 프로젝트에서 asset analyze-iam-policy gcloud 명령어를 사용하여 AnalyzeIamPolicy를 호출할 수 있습니다. Cloud SDK 버전 314.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

ORG_ID에서 USER가 어떤 리소스에 COMMA_SEPARATED_PERMISSIONS를 갖는지 확인하려면 다음을 수행합니다.

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --identity="USER" \
    --permissions="COMMA_SEPARATED_PERMISSIONS"

예를 들어 user1@example.com이 조직 1234567890에서 compute.instances.get 또는 compute.instances.start 권한을 가진 리소스는 다음과 같습니다.

gcloud asset analyze-iam-policy --organization="1234567890" \
    --identity="user:user1@example.com" \
    --permissions="compute.instances.get,compute.instances.start"

REST

  1. IAM 정책을 분석하고 gcurl 별칭을 사용하여 결과를 작성합니다.

  2. 요청 본문용으로 request.json 파일을 만들고 콘텐츠를 JSON 형식의 분석 요청으로 설정합니다.

    예를 들어 다음 요청 본문은 user1@example.comcompute.instances.get 또는 compute.instances.start 권한을 갖는 리소스를 확인합니다.

    {
      "analysisQuery": {
        "identitySelector": {
          "identity": "user:user1@example.com"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        }
      }
    }
    
  3. 다음 gcurl 명령어를 사용하여 IAM 정책을 분석합니다.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    여기서 ORG_ID는 조직 ID입니다(예: 1234567890).

조건부 액세스 결정

정책 분석기는 IAM 조건부 역할 binding을 분석하여 리소스에 대한 액세스를 제한하는 조건 속성이 있는 주 구성원을 결정할 수 있습니다. 예를 들어 서비스 계정에 특정 날짜나 시간에만 액세스를 허용하는 리소스에 대한 역할이 하나 이상 부여될 수 있습니다.

ConditionContext 필드에서 accessTime을 설정하여 날짜/시간 속성 조건부 역할 결합 분석을 사용 설정할 수 있습니다.

gcloud

API가 사용 설정된 프로젝트에서 asset analyze-iam-policy gcloud 명령어를 사용하여 AnalyzeIamPolicy를 호출할 수 있습니다. Cloud SDK 버전 335.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

DATE_TIMEORG_ID에서 FULL_RESOURCE_NAME에 대한 COMMA_SEPARATED_PERMISSIONS가 있는 주 구성원을 확인하려면 다음 안내를 따르세요.

gcloud asset analyze-iam-policy --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS" \
    --access-time="DATE_TIME"

예를 들어 2099-03-01T00:00:00Z에 조직 1234567890의 Compute Engine 인스턴스 ipa-gce-instance-2에 대한 compute.instances.get 또는 compute.instances.start 권한이 있는 주 구성원을 확인합니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참조하세요.

gcloud asset analyze-iam-policy --organization="1234567890" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --permissions="compute.instances.get,compute.instances.start" \
    --access-time="2099-03-01T00:00:00Z"

REST

  1. IAM 정책을 분석하고 gcurl 별칭을 사용하여 결과를 작성합니다.

  2. 요청 본문용으로 request.json 파일을 만들고 콘텐츠를 JSON 형식의 분석 요청으로 설정합니다.

    예를 들어 다음 요청 본문에서는 2099-03-01T00:00:00Z에 Compute Engine 인스턴스 ipa-gce-instance-2에 대해 compute.instances.get 또는 compute.instances.start 권한이 있는 사용자를 확인합니다.

    {
      "analysisQuery": {
        "resourceSelector": {
          "fullResourceName":
            "//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
         },
        "accessSelector": {
          "permissions": [
            "compute.instances.get",
            "compute.instances.start"
          ]
        },
        "conditionContext": {
          "accessTime": "2099-03-01T00:00:00Z"
        }
      }
    }
    
  3. 다음 gcurl 명령어를 사용하여 IAM 정책을 분석합니다.

    gcurl -d @request.json  \
    "https://cloudasset.googleapis.com/v1/organizations/ORG_ID:analyzeIamPolicy"
    

    여기서 ORG_ID는 조직 ID입니다(예: 1234567890).

클라이언트 라이브러리 및 API 참조

쿼리 작성

쿼리의 다른 사용 사례와 옵션을 알아보려면 IAM 정책 쿼리 샘플 분석을 참조하세요.