IAM 許可ポリシーの検索

Cloud Asset API では、カスタムクエリ言語を使用して、プロジェクト、フォルダ、組織内の Identity and Access Management(IAM)許可ポリシーを検索できます。

準備

許可ポリシーを検索する

コンソール

すべての IAM 許可ポリシーを検索するには、次の手順を行います。

  1. Google Cloud コンソールの [アセット インベントリ] ページに移動します。

    アセット インベントリに移動

  2. 検索のスコープを設定するには、メニューバーで [プロジェクト] リストボックスを開き、クエリする組織、フォルダ、またはプロジェクトを選択します。

  3. [IAM ポリシー] タブを選択します。

  4. 許可ポリシーを検索するには、プリセット クエリを使用するか、独自のクエリを作成します。

    • プリセット クエリを使用するには、[結果をフィルタする] ペインで [クエリのプリセット] からオプションを選択します。結果をフィルタするには、[フィルタ] からオプションを選択します。

    • 独自のクエリを作成するには、[フィルタ] バーにクエリテキストを入力します。テキスト ボックスを選択して、検索可能なフィールドのリストを表示します。ポリシー検索では複数のフィールドがサポートされています。詳しくは、クエリ構文をご覧ください。

クエリに一致する許可ポリシーが [結果] テーブルに一覧表示されます。

クエリを Google Cloud CLI コマンドとして表示するには、[クエリを表示] を選択します。

結果をエクスポートするには、[CSV 形式でダウンロード] を選択します。

gcloud

SearchAllIamPolicies は、gcloud asset search-all-iam-policiesコマンドを使用して呼び出せます。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*: バインディングに接頭辞として「comp」が付いている単語を含む許可ポリシー バインディングを検索します。

    • 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: ユーザー「amy」も指定して、リソース「instance1」または「instance2」に設定されている許可ポリシー バインディングを検索します。

    • roles:roles/compute.admin: Compute Admin ロールを指定する許可ポリシー バインディングを検索します。

    • memberTypes:user: 「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 コマンドの例を以下に示します。

  • mycompany.com ドメインを含む organizations/123456 内の IAM 許可ポリシー バインディングをすべて検索します。

    gcloud asset search-all-iam-policies \
        --scope=organizations/123456 \
        --query="policy:\"domain:mycompany.com\""
    
  • myuser@mycompany.com にオーナー(roles/owner)基本ロールが付与されている organizations/123456 内の 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

SearchAllIamPolicies は、プロジェクトで有効な OAuth トークンを使用して呼び出せます。Cloud Shellgcloud コマンドを使用できるコンソールから SearchAllIamPolicies メソッドを呼び出すには、次のようにします。

  1. プロジェクトの 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*: バインディングに接頭辞として「comp」が付いている単語を含む許可ポリシー バインディングを検索します。

      • 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: 「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 Identity および 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: を省略できます。たとえば、次のクエリは 1 人のユーザーにのみ一致すると考えられます。

policy:amy@mycompany.com

次の構文を使用して、クエリを特定のプリンシパル タイプに関連したポリシーに限定することもできます。

policy:user
memberTypes:user
memberTypes=user

policy:user は異なるプリンシパル タイプと一致する場合があります。例: group:test-user@mycompany.commemberTypes を使用して、検索対象を特定のプリンシパル タイプに限定します。

例: プリンシパルによるクエリ
  • ユーザー 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. 基本ロール: IAM 導入前に存在していた、オーナー(roles/owner)、編集者(roles/editor)、閲覧者(roles/viewer)の 3 つのロール。

  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 許可ポリシー バインディングに condition オブジェクトを含めると、Google Cloud リソースに対する条件付き、属性ベースのアクセス制御を定義して適用できます。詳しくは、IAM Conditions の概要をご覧ください。

次の構文を使用すると、特定の条件に関連する許可ポリシーにクエリを制限できます。

policy:condition_information
例: 条件によるクエリ
  • 条件を指定するすべての IAM 許可ポリシー バインディングを検索します。そのタイトルまたは説明には「myCondition」という単語が含まれています。

    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...cloudasset.assets.exportAssetscloudasset.assets.exportIamPolicyAnalysis など)を含む IAM 許可ポリシー バインディングをすべて検索します。

    policy.role.permissions:cloudasset.assets.export*
    
  • IAM 許可ポリシーを変更する権限を付与する IAM 許可ポリシー バインディングをすべて検索します。

    policy.role.permissions:setIamPolicy
    
  • compute.instances.create 権限と compute.disks.create 権限の両方を含むロールを持つ IAM 許可ポリシー バインディングをすべて検索します。

    policy.role.permissions:(compute.instances.create compute.disks.create)
    
  • compute.instances.create ユーザー amy を指定して、権限を含む IAM 許可ポリシー バインディングをすべて検索します。

    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)
    
  • 番号が 123project のリソースに設定されている IAM 許可ポリシー バインディングをすべて検索します。

    project:123
    
  • 番号が 123folder に含まれるリソースに設定されているすべての IAM 許可ポリシー バインディングを検索します。

    folders:123
    
  • 番号が 123organization のリソースに設定されている IAM 許可ポリシー バインディングをすべて検索します。

    organization:123
    

フリーテキストにより IAM 許可ポリシーを照会する

フィールドを指定せずに、フリーテキスト クエリを使用することもできます。クエリに一致する検索可能なフィールド(許可ポリシー バインディング フィールドやリソース フィールドなど)がある限り、レスポンスは許可ポリシーを返します。

例: フリーテキストによるクエリ

  • メタデータ フィールド(許可ポリシー バインディングやリソース フィールドなど)に Important という単語が含まれる、scope 内の IAM 許可ポリシー バインディングをすべて検索します。

    Important
    
  • メタデータ フィールド(許可ポリシー バインディングやリソース フィールドなど)に import という接頭辞がついた単語が含まれる、scope 内の IAM 許可ポリシー バインディングをすべて検索します。

    import*