IAM 허용 정책 검색

Cloud Asset API에서는 커스텀 쿼리 언어를 사용하여 프로젝트, 폴더 또는 조직에서 Identity and Access Management(IAM) 허용 정책을 검색할 수 있습니다.

시작하기 전에

허용 정책 검색

콘솔

모든 IAM 허용 정책을 검색하려면 다음 단계를 완료합니다.

  1. Google Cloud 콘솔에서 애셋 인벤토리 페이지로 이동합니다.

    애셋 인벤토리로 이동

  2. 검색 범위를 설정하려면 메뉴 바에서 프로젝트 목록 상자를 연 후 쿼리할 조직, 폴더, 프로젝트를 선택합니다.

  3. IAM 정책 탭을 선택합니다.

  4. 허용 정책을 검색하려면 사전 설정 쿼리를 사용하거나 고유 쿼리를 빌드할 수 있습니다.

    • 사전 설정 쿼리를 사용하려면 필터 결과 창의 쿼리 사전 설정에서 옵션을 선택합니다. 결과를 필터링하려면 필터에서 옵션을 선택합니다.

    • 자체 쿼리를 빌드하려면 필터 막대에 쿼리 텍스트를 입력합니다. 텍스트 상자를 선택한 후 검색 가능한 필드 목록이 표시됩니다. 정책 검색은 여러 필드를 지원합니다. 쿼리 구문에 대해 자세히 알아보세요.

쿼리와 일치하는 허용 정책이 결과 테이블에 나열됩니다.

Google Cloud CLI 명령어로 쿼리를 보려면 쿼리 보기를 선택합니다.

결과를 내보내려면 CSV 다운로드를 선택합니다.

gcloud

gcloud asset search-all-iam-policies 명령어를 사용하여 SearchAllIamPolicies를 호출할 수 있습니다. Google Cloud CLI 버전 302.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

gcloud asset search-all-iam-policies \
    --scope=SCOPE \
    --query="QUERY" \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --order-by=ORDER_BY

다음 값을 제공합니다.

  • SCOPE: (필수) 범위는 프로젝트, 폴더 또는 조직이 될 수 있습니다. 이 범위의 IAM 허용 정책으로 검색이 제한됩니다. 호출자는 선택된 범위에 대해 cloudasset.assets.searchAllIamPolicies 권한이 있는 역할을 부여받아야 합니다. 지정하지 않으면 구성된 프로젝트 속성이 사용됩니다.

    허용되는 값은 다음과 같습니다.

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud 프로젝트 번호를 찾는 방법

      콘솔

      Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔의 대시보드 페이지로 이동합니다.

        대시보드로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자에서 조직을 선택한 후 프로젝트 이름을 검색합니다.
      4. 프로젝트 이름을 클릭하여 해당 프로젝트로 전환합니다. 프로젝트 번호가 프로젝트 정보 카드에 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud 폴더 ID를 찾는 방법

      콘솔

      Google Cloud 폴더 ID를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔로 이동합니다.

        Google Cloud 콘솔로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
      4. 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 ID가 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 조직 수준에 있는 Google Cloud 폴더 ID를 검색할 수 있습니다.

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      여기서 TOP_LEVEL_FOLDER_NAME은 전체 또는 일부 문자열 일치일 수 있습니다. 발견된 폴더에 대한 추가 정보를 보려면 --format 옵션을 삭제합니다.

      다른 폴더 내에서 폴더 ID를 가져오려면 하위 폴더를 나열합니다.

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Google Cloud 조직 ID를 찾는 방법

      콘솔

      Google Cloud 조직 ID를 찾으려면 다음 단계를 완료합니다.

      1. Google Cloud 콘솔로 이동합니다.

        Google Cloud 콘솔로 이동

      2. 메뉴 바에서 전환 상자를 클릭합니다.
      3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
      4. 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.

      gcloud CLI

      다음 명령어를 사용하여 Google Cloud 조직 ID를 검색할 수 있습니다.

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • QUERY: (선택사항) 쿼리 문입니다. 자세한 내용은 쿼리 구문을 참조하세요. 지정하지 않거나 비어 있으면 지정된 scope의 모든 IAM 허용 정책을 검색합니다. 쿼리 문자열은 주 구성원, 역할, IAM 조건을 포함하여 각 허용 정책 바인딩과 비교됩니다. 반환된 허용 정책에는 쿼리와 일치하는 바인딩만 포함됩니다. 허용 정책 구조에 대한 자세한 내용은 정책 이해를 참조하세요.

    예:

    • policy:amy@gmail.com: 'amy@gmail.com' 사용자를 지정하는 허용 정책 바인딩을 찾습니다.

    • policy:roles/compute.admin: Compute Admin 역할을 지정하는 허용 정책 바인딩을 찾습니다.

    • policy:comp*: 바인딩에서 'compt'가 모든 단어의 프리픽스로 포함된 허용 정책 바인딩을 찾습니다.

    • policy.role.permissions:storage.buckets.update: 'storage.buckets.update' 권한이 포함된 역할을 지정하는 허용 정책 바인딩을 찾습니다. 원하는 역할에 대한 iam.roles.get 권한이 포함된 역할이 호출자에게 부여되지 않은 경우 이 역할을 지정하는 허용 정책 바인딩이 검색결과에서 삭제됩니다.

    • policy.role.permissions:upd*: 바인딩에서 'upd'가 단어의 프리픽스로 포함된 역할을 지정하는 정책 바인딩을 찾습니다. 원하는 역할에 대한 iam.roles.get 권한이 포함된 역할이 호출자에게 부여되지 않은 경우 이 역할을 지정하는 허용 정책 바인딩이 검색결과에서 삭제됩니다.

    • resource:organizations/123456: 'organizations/123456'에 설정된 허용 정책 바인딩을 찾습니다.

    • resource=//cloudresourcemanager.googleapis.com/projects/myproject: 'myproject'라는 프로젝트에 설정된 허용 정책 바인딩을 찾습니다.

    • Important: 포함된 권한을 제외하고 검색 가능한 모든 필드에 'Important'라는 단어가 포함된 허용 정책 바인딩을 찾습니다.

    • resource:(instance1 OR instance2) policy:amy: 'instance1' 또는 'instance2' 리소스에 설정된 허용 정책 바인딩을 찾고 사용자 'amy'도 지정합니다.

    • roles:roles/compute.admin: Compute Admin 역할을 지정하는 허용 정책 바인딩을 찾습니다.

    • memberTypes:user: '사용자' 주 구성원 유형이 포함된 허용 정책 바인딩을 찾습니다.

  • ASSET_TYPE: (선택사항) Identity and Access Management 허용 정책이 연결된 애셋 유형의 목록입니다. 비어 있으면 검색 가능한 애셋 유형에 연결된 Identity and Access Management 허용 정책을 검색합니다. 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

  • ORDER_BY: (선택사항) 결과의 정렬 순서를 지정하는 쉼표로 구분된 필드 목록입니다. 기본 순서는 오름차순입니다. 필드 이름 다음에 DESC를 추가하여 내림차순으로 표시합니다. 중복된 공백 문자는 무시됩니다. 예를 들면 "assetType DESC, resource"입니다. 응답의 단일 기본 필드만 정렬할 수 있습니다.

    • resource

    • assetType

    • project

    반복되는 입력란(예: folders) 및 기본이 아닌 필드(예: policy)와 같은 다른 모든 필드는 지원되지 않습니다.

다음은 gcloud 명령어의 예시입니다.

  • organizations/123456에서 mycompany.com 도메인이 포함된 모든 IAM 허용 정책 바인딩을 찾습니다.

    gcloud asset search-all-iam-policies \
        --scope=organizations/123456 \
        --query="policy:\"domain:mycompany.com\""
    
  • organizations/123456에서 소유자(roles/owner) 기본 역할이 myuser@mycompany.com에 부여된 모든 IAM 허용 정책 바인딩을 찾습니다.

    gcloud asset search-all-iam-policies \
        --scope=organizations/123456 \
        --query="policy:(roles/owner myuser@mycompany.com)"
    
  • projects/12345678에서 설정된 organizations/123456의 모든 IAM 허용 정책 바인딩을 찾습니다.

    gcloud asset search-all-iam-policies \
        --scope=organizations/123456 \
        --query="resource:projects/12345678"
    

REST

프로젝트에 유효한 OAuth 토큰을 사용하여 SearchAllIamPolicies를 호출할 수 있습니다. Cloud Shell 또는 gcloud 명령어를 사용할 수 있는 모든 콘솔에서 SearchAllIamPolicies 메서드를 호출하려면 다음 안내를 따르세요.

  1. 프로젝트의 OAuth 동의 화면을 구성하지 않은 경우 구성해야 합니다. OAuth 동의 화면에는 이메일 주소와 제품 이름이 필요합니다.

    1. 프로젝트의 OAuth 동의 화면으로 이동합니다.

      동의 화면 구성

    2. 표시하려는 애플리케이션 이름을 입력합니다.

    3. 지원 이메일에서 공개 연락처로 표시할 이메일 주소를 선택합니다. 이 주소는 개발자의 이메일 주소 또는 개발자가 소유하는 Google 그룹이어야 합니다.

    4. 원하는 선택적인 세부정보를 추가합니다.

    5. 저장을 클릭합니다.

  2. 프로젝트의 OAuth 토큰을 만듭니다. 자세한 내용은 OAuth 2.0 설정을 참조하세요.

    1. OAuth 클라이언트 ID 만들기 페이지로 이동합니다.

      OAuth 클라이언트 만들기

    2. 애플리케이션 유형으로 데스크톱 앱을 선택합니다.

    3. 만들기를 클릭합니다.

  3. client_secret.json 파일을 다운로드합니다.

    1. 사용자 인증 정보 페이지로 이동합니다.

    2. 클라이언트 ID 오른쪽에 있는 JSON 다운로드를 클릭합니다.

    3. 이 앱만 액세스할 수 있는 위치에 안전하게 파일을 저장합니다.

  4. 다음 명령어로 JSON 파일을 사용하여 로그인합니다.

    gcloud auth application-default login --client-id-file=YOUR_JSON_FILE
    

    이 명령어를 실행하면 링크를 열라는 메시지가 표시됩니다. OAuth 동의 화면에서 설정한 애플리케이션 이름이 페이지에 표시되는지 확인합니다.

  5. 이제 curl 명령어를 사용하여 IAM 허용 정책을 쿼리할 수 있습니다.

    curl -X POST \
         -H "X-HTTP-Method-Override: GET" \
         -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         -H "Content-Type: application/json" \
         -d '{
              "assetTypes": [
                "ASSET_TYPE_1",
                "ASSET_TYPE_2",
                "..."
              ],
              "orderBy": "ORDER_BY",
              "pageSize": PAGE_SIZE,
              "query": "QUERY"
             }' \
         https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies
    

    다음과 같은 정보를 입력합니다.

    • ASSET_TYPE: (선택사항) Identity and Access Management 허용 정책이 연결된 애셋 유형의 목록입니다. 비어 있으면 검색 가능한 애셋 유형에 연결된 Identity and Access Management 허용 정책을 검색합니다. 정규 표현식이 지원됩니다. 정규 표현식이 지원되는 애셋 유형과 일치하지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

    • ORDER_BY: (선택사항) 결과의 정렬 순서를 지정하는 쉼표로 구분된 필드 목록입니다. 기본 순서는 오름차순입니다. 필드 이름 다음에 DESC를 추가하여 내림차순으로 표시합니다. 중복된 공백 문자는 무시됩니다. 예를 들면 "assetType DESC, resource"입니다. 응답의 단일 기본 필드만 정렬할 수 있습니다.

      • resource

      • assetType

      • project

      반복되는 입력란(예: folders) 및 기본이 아닌 필드(예: policy)와 같은 다른 모든 필드는 지원되지 않습니다.

    • PAGE_SIZE: 선택사항. 페이지당 반환할 결과 수입니다. 최댓값은 2,000입니다. 값을 0 또는 음수 값으로 설정하면 적합한 기본값이 선택됩니다. nextPageToken이 반환되어 후속 결과를 검색합니다.

    • QUERY: (선택사항) 쿼리 문입니다. 자세한 내용은 쿼리 구문을 참조하세요. 지정하지 않거나 비어 있으면 지정된 scope의 모든 IAM 허용 정책을 검색합니다. 쿼리 문자열은 주 구성원, 역할, IAM 조건을 포함하여 각 허용 정책 바인딩과 비교됩니다. 반환된 허용 정책에는 쿼리와 일치하는 바인딩만 포함됩니다. 허용 정책 구조에 대한 자세한 내용은 허용 정책 이해를 참조하세요.

      예:

      • policy:amy@gmail.com: 'amy@gmail.com' 사용자를 지정하는 허용 정책 바인딩을 찾습니다.

      • policy:roles/compute.admin: Compute Admin 역할을 지정하는 허용 정책 바인딩을 찾습니다.

      • policy:comp*: 바인딩에서 'compt'가 모든 단어의 프리픽스로 포함된 허용 정책 바인딩을 찾습니다.

      • policy.role.permissions:storage.buckets.update: 'storage.buckets.update' 권한이 포함된 역할을 지정하는 허용 정책 바인딩을 찾습니다. 원하는 역할에 대한 iam.roles.get 권한이 포함된 역할이 호출자에게 부여되지 않은 경우 이 역할을 지정하는 허용 정책 바인딩이 검색결과에서 삭제됩니다.

      • policy.role.permissions:upd*: 역할 권한에서 모든 단어의 프리픽스로 'upd'를 포함하는 역할을 지정하는 허용 정책 바인딩을 찾습니다. 원하는 역할에 대한 iam.roles.get 권한이 포함된 역할이 호출자에게 부여되지 않은 경우 이 역할을 지정하는 허용 정책 바인딩이 검색결과에서 삭제됩니다.

      • resource:organizations/123456: 'organizations/123456'에 설정된 허용 정책 바인딩을 찾습니다.

      • resource=//cloudresourcemanager.googleapis.com/projects/myproject: 'myproject'라는 프로젝트에 설정된 허용 정책 바인딩을 찾습니다.

      • Important: 포함된 권한을 제외하고 검색 가능한 모든 필드에 'Important'라는 단어가 포함된 허용 정책 바인딩을 찾습니다.

      • resource:(instance1 OR instance2) policy:amy: 'instance1' 또는 'instance2' 리소스에 설정된 허용 정책 바인딩을 찾고 사용자 'amy'도 지정합니다.

      • roles:roles/compute.admin: Compute Admin 역할을 지정하는 허용 정책 바인딩을 찾습니다.

      • memberTypes:user: '사용자' 주 구성원 유형이 포함된 허용 정책 바인딩을 찾습니다.

    • SCOPE: 범위는 프로젝트, 폴더 또는 조직이 될 수 있습니다. 이 범위의 IAM 허용 정책으로 검색이 제한됩니다. 호출자는 선택된 범위에 대해 cloudasset.assets.searchAllIamPolicies 권한이 있는 역할을 부여받아야 합니다. 지정하지 않으면 구성된 프로젝트 속성이 사용됩니다.

      허용되는 값은 다음과 같습니다.

      • projects/PROJECT_ID

      • projects/PROJECT_NUMBER

        Google Cloud 프로젝트 번호를 찾는 방법

        콘솔

        Google Cloud 프로젝트 번호를 찾으려면 다음 단계를 완료합니다.

        1. Google Cloud 콘솔의 대시보드 페이지로 이동합니다.

          대시보드로 이동

        2. 메뉴 바에서 전환 상자를 클릭합니다.
        3. 다음 조직에서 선택 상자에서 조직을 선택한 후 프로젝트 이름을 검색합니다.
        4. 프로젝트 이름을 클릭하여 해당 프로젝트로 전환합니다. 프로젝트 번호가 프로젝트 정보 카드에 표시됩니다.

        gcloud CLI

        다음 명령어를 사용하여 Google Cloud 프로젝트 번호를 검색할 수 있습니다.

        gcloud projects describe PROJECT_ID --format="value(projectNumber)"

      • folders/FOLDER_ID

        Google Cloud 폴더 ID를 찾는 방법

        콘솔

        Google Cloud 폴더 ID를 찾으려면 다음 단계를 완료합니다.

        1. Google Cloud 콘솔로 이동합니다.

          Google Cloud 콘솔로 이동

        2. 메뉴 바에서 전환 상자를 클릭합니다.
        3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
        4. 폴더 이름을 검색합니다. 폴더 이름 옆에 폴더 ID가 표시됩니다.

        gcloud CLI

        다음 명령어를 사용하여 조직 수준에 있는 Google Cloud 폴더 ID를 검색할 수 있습니다.

        gcloud resource-manager folders list \
            --organization=$(gcloud organizations describe ORGANIZATION_NAME \
              --format="value(name.segment(1))") \
            --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
            --format="value(ID)"

        여기서 TOP_LEVEL_FOLDER_NAME은 전체 또는 일부 문자열 일치일 수 있습니다. 발견된 폴더에 대한 추가 정보를 보려면 --format 옵션을 삭제합니다.

        다른 폴더 내에서 폴더 ID를 가져오려면 하위 폴더를 나열합니다.

        gcloud resource-manager folders list --folder=FOLDER_ID

      • organizations/ORGANIZATION_ID

        Google Cloud 조직 ID를 찾는 방법

        콘솔

        Google Cloud 조직 ID를 찾으려면 다음 단계를 완료합니다.

        1. Google Cloud 콘솔로 이동합니다.

          Google Cloud 콘솔로 이동

        2. 메뉴 바에서 전환 상자를 클릭합니다.
        3. 다음 조직에서 선택 상자를 클릭한 후 조직을 선택합니다.
        4. 모두 탭을 클릭합니다. 조직 ID가 조직 이름 옆에 표시됩니다.

        gcloud CLI

        다음 명령어를 사용하여 Google Cloud 조직 ID를 검색할 수 있습니다.

        gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

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

쿼리 구성 방법

쿼리 언어에 대한 자세한 내용은 쿼리 구문을 참조하세요.

다양한 실제 사용 사례의 샘플 쿼리에 대한 자세한 내용은 IAM 허용 정책 샘플 검색을 참조하세요.

바인딩 정보를 사용하여 IAM 허용 정책 쿼리

IAM 허용 정책을 검색하려면 쿼리 표현식은 다음과 같은 형식이어야 합니다.

policy:QUERY

또한 다음 형식으로 주 구성원 유형 또는 역할을 단독으로 검색할 수 있습니다.

  • 완전 일치 검색:

    • memberTypes=QUERY

    • roles=QUERY

  • 부분 일치 검색:

    • memberTypes:QUERY

    • roles:QUERY

주 구성원

IAM 허용 정책 바인딩은 5가지 유형의 주 구성원을 지원합니다.

  1. Google 계정(예: user:user@gmail.com)

  2. Google 그룹(예: group:devs@googlegroups.com)

  3. Cloud ID 및 G Suite 도메인(예: domain:google.com)

  4. 서비스 계정(예: serviceAccount:my-other-app@appspot.gserviceaccount.com)

  5. 특수 식별자(예: allUsersallAuthenticatedUsers)

다음 구문을 사용하여 특정 사용자와 관련된 허용 정책으로 쿼리를 제한할 수 있습니다.

policy:"user:amy@mycompany.com"

user:amy@mycompany.com에는 특수 문자 :가 포함되어 있으므로 큰따옴표로 묶어야 합니다. 쿼리 값이 고유하거나 주 구성원 유형에 관계없이 이메일 주소를 검색하려는 경우 쿼리 문자열에서 user: 또는 group: 프리픽스를 생략할 수 있습니다. 예를 들어 다음 쿼리는 사용자 일치 항목만 검색합니다.

policy:amy@mycompany.com

또한 다음 구문을 사용하면 특정 주 구성원 유형과 관련된 정책으로 쿼리를 제한할 수 있습니다.

policy:user
memberTypes:user
memberTypes=user

policy:user가 다른 주 구성원 유형 일치 항목을 검색할 수도 있습니다. 예를 들면 group:test-user@mycompany.com입니다. memberTypes를 사용하여 검색을 특정 주 구성원 유형으로 제한합니다.

예시: 주 구성원으로 쿼리
  • 사용자 Amy를 지정하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:amy
    
  • mydomain.com 도메인을 지정하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:mydomain.com
    
  • 사용자 AmyJohn을 지정하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:(amy john)
    
  • 사용자 Amy 또는 John를 지정하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:(amy OR john)
    
  • 조직에서 amy@mycompany.com이 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:amy@mycompany.com
    
  • 조직에서 mycompany.com 도메인이 포함된 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:"domain:mycompany.com"
    
  • mycompany.gserviceaccount.com 서비스 계정에 역할을 할당하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:"serviceAccount:mycompany.gserviceaccount.com"
    
  • admins 그룹에 역할을 할당하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:"group:admins"
    
  • 모든 사용자에게 역할을 할당하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    memberTypes:allUsers
    
  • 인증된 모든 사용자에게 역할을 할당하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    memberTypes:allAuthenticatedUsers
    
  • amy@mycompany.com 또는 mycompany.com 도메인에 역할을 할당하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:(amy@mycompany.com OR "domain:mycompany.com")
    

역할

IAM 허용 정책 바인딩은 다양한 유형의 역할을 지원합니다. 모든 IAM 역할 이름은 roles/ 프리픽스로 시작합니다.

  1. 기본 역할: 소유자(roles/owner), 편집자(roles/editor), 뷰어(roles/viewer)는 IAM 도입 전에도 존재했던 세 가지 역할입니다.

  2. 사전 정의된 역할: IAM은 다양한 리소스에 대한 세분화된 액세스 권한을 부여하는 사전 정의된 역할을 추가로 제공합니다. 사전 정의된 역할을 모두 확인하세요.

  3. 커스텀 역할: 선별된 권한 목록이 포함된 사용자 정의 IAM 역할입니다.

다음 구문을 사용하면 특정 역할과 관련된 허용 정책으로 쿼리를 제한할 수 있습니다.

policy:roles/role-name
roles:roles/role-name
roles=roles/role-name

쿼리 값이 고유한 경우 쿼리 문자열에서 roles/ 프리픽스를 생략할 수 있습니다. 예를 들어 다음 쿼리는 roles/cloudasset.owner 역할 일치 항목만 검색할 수 있습니다.

policy:cloudasset.owner
roles:cloudasset.owner

policy:cloudasset.owner가 다른 역할 일치 항목을 검색할 수 있습니다. 예를 들어 주 구성원 user:cloudasset.owner@mycompany.com에게 역할이 부여되는 경우입니다. roles를 사용하여 검색을 역할로 제한합니다.

예시: 역할로 쿼리
  • owner 역할을 지정하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:roles/owner
    roles:roles/owner
    roles=roles/owner
    
  • amy@mycompany.com에 소유자 역할을 할당하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:(roles/owner amy@mycompany.com)
    
  • 이메일 주소에 john이라는 단어가 포함된 주 구성원에게 compute.admin 역할을 할당하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:(roles/compute.admin john)
    
  • 'swe' 또는 'sde'가 프리픽스로 가지고 있는 사용자에게 viewer 역할을 부여하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:(roles/viewer (swe* OR sde*))
    

IAM 조건

IAM 허용 정책 바인딩에는 Google Cloud 리소스에 대한 조건부의 속성 기반 액세스 제어를 정의하고 적용할 수 있도록 하는 condition 객체가 포함될 수 있습니다. 자세한 내용은 IAM 조건 개요를 참조하세요.

다음 구문을 사용하여 특정 조건과 관련된 허용 정책으로 쿼리를 제한할 수 있습니다.

policy:condition_information
예시: 조건으로 쿼리
  • 제목 및 설명에 'myCondition' 단어가 포함된 조건을 지정하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:myCondition
    
  • 표현식에 'request.time' 속성이 포함된 조건을 지정하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy:"request.time"
    

포함된 권한으로 IAM 허용 정책 쿼리

허용 정책의 역할에는 권한 목록이 포함될 수 있습니다. 자세한 내용은 IAM 권한 참조를 확인하세요. 특정 권한을 포함하는 허용 정책으로 쿼리를 제한할 수 있습니다. 쿼리 표현식의 형식은 다음과 같습니다.

  • 완전 일치 검색: policy.role.permissions=QUERY
  • 부분 일치 검색: policy.role.permissions:QUERY
예시: 권한으로 쿼리
  • compute.instances.create 권한이 포함된 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy.role.permissions:compute.instances.create
    policy.role.permissions=compute.instances.create
    
  • compute.instances 관련 권한이 포함된 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy.role.permissions:compute.instances
    
  • cloudasset.assets.export... 권한을 포함하는 모든 IAM 허용 정책 바인딩을 찾습니다(예: cloudasset.assets.exportAssetscloudasset.assets.exportIamPolicyAnalysis).

    policy.role.permissions:cloudasset.assets.export*
    
  • 다른 사용자에게 IAM 허용 정책을 변경할 수 있는 권한을 부여하는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy.role.permissions:setIamPolicy
    
  • compute.instances.createcompute.disks.create 권한이 모두 포함된 역할이 있는 모든 IAM 허용 정책 바인딩을 찾습니다.

    policy.role.permissions:(compute.instances.create compute.disks.create)
    
  • compute.instances.create 권한이 포함된 모든 IAM 허용 정책 바인딩을 찾고 사용자 amy를 지정합니다.

    policy.role.permissions:compute.instances.create policy:amy
    policy.role.permissions=compute.instances.create policy:amy
    

연결된 리소스별로 IAM 허용 정책 쿼리

검색을 수행할 때 전체 리소스 이름을 지정하여 리소스에 직접 설정된 허용 정책만 검색할 수 있습니다. 프로젝트, 폴더 또는 조직을 지정하여 특정 프로젝트/폴더/조직에 있는 리소스에 설정된 허용 정책만 검색할 수도 있습니다. 쿼리 표현식의 형식은 다음과 같습니다.

  • 완전 일치 검색:

    • resource=QUERY

    • project=QUERY

    • folders=QUERY

    • organization=QUERY

  • 부분 일치 검색:

    • resource:QUERY

    • project:QUERY

    • folders:QUERY

    • organization:QUERY

예시: 연결된 리소스별로 쿼리

  • 전체 리소스 이름이 정확하게 //cloudresourcemanager.googleapis.com/projects/myproject와 일치하는 리소스에 직접 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    resource=//cloudresourcemanager.googleapis.com/projects/myproject
    
  • 전체 리소스 이름myproject라는 단어가 포함된 리소스에 직접 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    resource:myproject
    
  • 전체 리소스 이름에 특정 프리픽스가 myproj인 단어가 포함된 리소스에 직접 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    resource:myproj*
    
  • 특정 서비스 유형의 리소스에 직접 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    resource:cloudresourcemanager
    
  • myproject 또는 myfolder에 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    resource:(myproject OR myfolder)
    
  • cloudresourcemanager 리소스에 설정된 모든 IAM 허용 정책 바인딩을 찾아서 소유자 역할을 gmail.com 사용자에게 할당합니다.

    resource:cloudresourcemanager policy:(roles/owner gmail.com)
    
  • project의 번호가 123인 리소스에 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    project:123
    
  • 번호가 123folder에 포함된 리소스에 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    folders:123
    
  • organization의 번호가 123인 리소스에 설정된 모든 IAM 허용 정책 바인딩을 찾습니다.

    organization:123
    

자유 텍스트로 IAM 허용 정책 쿼리

필드를 지정하지 않고 자유 텍스트 쿼리를 사용할 수도 있습니다. 쿼리와 일치하는 검색 가능한 필드(예: 허용 정책 바인딩 필드 또는 리소스 필드)가 있는 한 응답이 허용 정책을 반환합니다.

예시: 자유 텍스트로 쿼리

  • 해당 scope에서 메타데이터 필드(예: 허용 정책 바인딩 또는 리소스 필드)에 Important가 단어로 포함된 모든 IAM 허용 정책 바인딩을 찾습니다.

    Important
    
  • scope에서 메타데이터 필드(예: 허용 정책 바인딩, 리소스 필드)에 모든 단어의 프리픽스로 import가 포함된 모든 IAM 허용 정책 바인딩을 찾습니다.

    import*