Nach IAM-Zulassungsrichtlinien für Ressourcen suchen

Sie können in einem Projekt, Ordner oder einer Organisation nach IAM-Zulassungsrichtlinien für Ihre Ressourcen suchen und die zurückgegebenen Ergebnisse mit einer Abfrage filtern.

Hinweise

  1. Aktivieren Sie die Cloud Asset Inventory API in dem Projekt, in dem Sie Cloud Asset Inventory-Befehle ausführen.

    Cloud Asset Inventory API aktivieren

  2. Prüfen Sie, ob Ihr Konto die richtige Rolle zum Aufrufen der Cloud Asset Inventory API hat. Informationen zu den einzelnen Berechtigungen für jeden Anruftyp finden Sie unter Berechtigungen.

Abfrage erstellen

Bevor Sie eine Abfrage erstellen, kann es hilfreich sein, mit einer Suchanfrage zu beginnen, die keine Abfrage angibt. Verwenden Sie die Felder und Werte aus der vollständigen Antwort, um eine Abfrage mit der Syntax für Suchanfragen zu erstellen, und optimieren Sie sie, bis die gewünschten Ergebnisse zurückgegeben werden.

Felder, die in einer Abfrage verwendet werden können, werden in der IamPolicySearchResult-Referenzdokumentation beschrieben.

Beachten Sie beim Erstellen einer Abfrage die folgenden Einschränkungen:

  • Das Feld policy ist ein verschachteltes Objekt und kann daher nur mit dem Operator : verwendet werden.

  • Nicht alle Asset-Typen sind suchbar. Unter Ressourcentypen können Sie nachsehen, ob ein Dienst in den Such-APIs nicht verfügbar ist.

Mit den folgenden zusätzlichen Feldern können Sie die Ergebnisse auch auf bestimmte Hauptkontotypen, Berechtigungen oder Rollen beschränken:

Feld Beschreibung
memberTypes

Enthält einen der folgenden IAM-Hauptkontotypen:

  • user
  • group
  • domain
  • serviceAccount
  • allUsers
  • allAuthenticatedUsers
Beispiel
memberTypes=user
policy.role.permissions

Enthält bestimmte IAM-Berechtigungen.

Beispiel
policy.role.permissions=storage.buckets.create
roles

Enthält bestimmte IAM-Rollen.

Beispiel
roles=roles/storage.objectAdmin

Nach IAM-Zulassungsrichtlinien suchen

Bevor Sie eine Abfrage erstellen, kann es hilfreich sein, mit einer Suchanfrage zu beginnen, die keine Abfrage angibt. Verwenden Sie die Felder und Werte aus der vollständigen Antwort, um eine Abfrage mit der Syntax für Suchanfragen zu erstellen, und optimieren Sie sie, bis die gewünschten Ergebnisse zurückgegeben werden.

Console

Führen Sie die folgenden Schritte aus, um nach Metadaten für IAM-Zulassungsrichtlinien zu suchen.

  1. Rufen Sie in der Google Cloud -Konsole die Seite Asset Inventory auf.

    Asset Inventory aufrufen

  2. Wechseln Sie zu dem Projekt, dem Ordner oder der Organisation, in dem bzw. der Sie suchen möchten.
  3. Klicken Sie auf den Tab IAM-Richtlinie.
  4. Wenn Sie nach Zulassungsrichtlinien suchen möchten, geben Sie eine Abfrage in das Feld Filter ein. Informationen zum Erstellen einer Suchanfrage finden Sie unter Syntax von Suchanfragen.

    Um das Erstellen von Abfragen zu vereinfachen, können Sie auf das Feld Filter klicken, um die verfügbaren suchbaren Felder einzublenden und Ihrer Abfrage hinzuzufügen.

Nach einer Suche werden die zugehörigen Zulassen-Richtlinien in der Tabelle Ergebnisse aufgeführt. Doppelklicken Sie auf die Abfrage, um sie zu bearbeiten, oder verwenden Sie den Bereich Ergebnisse filtern, um Abfragevoreinstellungen anzuwenden oder die Suchergebnisse auf bestimmte Kriterien einzugrenzen.

Wenn Sie die Abfrage als Google Cloud CLI-Befehl anzeigen möchten, klicken Sie auf Abfrage anzeigen.

Klicken Sie zum Exportieren der Ergebnisse auf CSV-Datei herunterladen.

gcloud

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

Geben Sie folgende Werte an:

  • SCOPE_PATH: Verwenden Sie einen der folgenden Werte:

    Zulässige Werte:

    • projects/PROJECT_ID, wobei PROJECT_ID die ID des Projekts ist, das Assets mit IAM-Zulassungsrichtlinien enthält, nach denen Sie suchen möchten.
    • projects/PROJECT_NUMBER, wobei PROJECT_NUMBER die Nummer des Projekts ist, das Assets mit IAM-Zulassungsrichtlinien enthält, nach denen Sie suchen möchten.

      Projektnummer für Google Cloud ermitteln

      Google Cloud Console

      So rufen Sie die Projektnummer eines Google Cloud -Projekts ab:

      1. Rufen Sie in der Google Cloud -Console die Seite Willkommen auf.

        Zur Begrüßungsseite

      2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
      3. Wählen Sie Ihre Organisation aus dem Listenfeld aus und suchen Sie dann nach dem Projektnamen. Der Projektname, die Projektnummer und die Projekt-ID werden in der Nähe der Überschrift Willkommen angezeigt.

        Es werden bis zu 4.000 Ressourcen angezeigt. Wenn Sie das gewünschte Projekt nicht finden, rufen Sie die Seite Ressourcen verwalten auf und filtern Sie die Liste mit dem Namen des Projekts.

      gcloud-CLI

      Sie können die Projektnummer eines Google Cloud -Projekts mit dem folgenden Befehl abrufen:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, wobei FOLDER_ID die ID des Ordners mit Assets mit IAM-Zulassungsrichtlinien ist, nach denen Sie suchen möchten.

      ID eines Ordners in Google Cloud ermitteln

      Google Cloud Console

      So rufen Sie die ID eines Ordners in Google Cloud ab:

      1. Rufen Sie die Google Cloud -Konsole auf.

        Rufen Sie die Google Cloud -Console auf.

      2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
      3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
      4. Suchen Sie nach dem Namen des Ordners. Die Ordner-ID wird neben dem Ordnernamen angezeigt.

      gcloud-CLI

      Sie können die ID eines Google Cloud -Ordners auf Organisationsebene mit dem folgenden Befehl abrufen:

      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)"

      Dabei ist TOP_LEVEL_FOLDER_NAME ein teilweiser oder vollständiger Stringabgleich mit dem Namen des Ordners. Entfernen Sie das --format-Flag, um weitere Informationen zu den gefundenen Ordnern aufzurufen.

      Der vorherige Befehl gibt nicht die IDs von Unterordnern in Ordnern zurück. Führen Sie dazu den folgenden Befehl mit der ID eines Ordners der obersten Ebene aus:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, wobei ORGANIZATION_ID die ID der Organisation ist, die Assets mit IAM-Zulassungsrichtlinien enthält, nach denen Sie suchen möchten.

      ID einer Google Cloud -Organisation ermitteln

      Google Cloud Console

      So ermitteln Sie die ID einer Google Cloud -Organisation:

      1. Rufen Sie die Google Cloud -Konsole auf.

        Rufen Sie die Google Cloud -Console auf.

      2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
      3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
      4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

      gcloud-CLI

      Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: Optional. Der Abfrageausdruck. Wenn nicht angegeben oder leer, wird im angegebenen Umfang nach allen Ressourcen gesucht. Informationen zum Erstellen einer Suchanfrage finden Sie unter Syntax von Suchanfragen.
  • ASSET_TYPE_#: Optional. Eine durch Kommas getrennte Liste von suchbaren Asset-Typen. RE2-kompatible reguläre Ausdrücke werden unterstützt. Wenn der reguläre Ausdruck mit keinem unterstützten Asset-Typ übereinstimmt, wird ein INVALID_ARGUMENT-Fehler zurückgegeben. Wenn --asset-types nicht angegeben ist, werden alle Asset-Typen zurückgegeben.
  • ORDER_BY: Optional. Eine durch Kommas getrennte Liste von Feldern, die die Sortierreihenfolge der Ergebnisse angibt. Die Standardreihenfolge ist aufsteigend. Fügen Sie nach dem Feldnamen DESC ein, um die absteigende Reihenfolge anzugeben. Welche Felder sortiert werden können, erfahren Sie in der Referenzdokumentation.

Mit den Flags --format und --flatten können Sie die Ausgabe der gcloud CLI formatieren.

Eine vollständige Liste der Optionen finden Sie in der Referenz zur gcloud CLI.

Beispiel

Führen Sie den folgenden Befehl aus, um eine Liste aller Compute Engine-Instanzen (compute.googleapis.com/Instance) im Projekt my-project mit einer IAM-Zulassungsrichtlinie aufzurufen, die sie an den Nutzer alex@example.com bindet. Die Ergebnisse werden in absteigender Reihenfolge nach Ressource (resource DESC) sortiert.

gcloud asset search-all-iam-policies \
    --scope=projects/my-project \
    --query="policy:\"user:alex@example.com\"" \
    --asset-types=compute.googleapis.com/Instance \
    --order-by="resource DESC"

Beispielantwort

---
assetType: compute.googleapis.com/Instance
folders:
- folders/0000000000000
organization: organizations/0000000000000
policy:
  bindings:
  - members:
    - user:alex@example.com
    role: roles/compute.viewer
  - members:
    - user:alex@example.com
    role: roles/editor
  - members:
    - user:alex@example.com
    role: roles/owner
project: projects/0000000000000
resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllIamPolicies

JSON-Text anfordern:

{
  "query": "QUERY",
  "assetTypes": [
    "ASSET_TYPE_1",
    "ASSET_TYPE_2",
    "..."
  ],
  "orderBy": "ORDER_BY",
  "pageSize": "PAGE_SIZE",
  "pageToken": "PAGE_TOKEN"
}

Geben Sie folgende Werte an:

  • SCOPE_PATH: Verwenden Sie einen der folgenden Werte:

    Zulässige Werte:

    • projects/PROJECT_ID, wobei PROJECT_ID die ID des Projekts ist, das Assets mit IAM-Zulassungsrichtlinien enthält, nach denen Sie suchen möchten.
    • projects/PROJECT_NUMBER, wobei PROJECT_NUMBER die Nummer des Projekts ist, das Assets mit IAM-Zulassungsrichtlinien enthält, nach denen Sie suchen möchten.

      Projektnummer für Google Cloud ermitteln

      Google Cloud Console

      So rufen Sie die Projektnummer eines Google Cloud -Projekts ab:

      1. Rufen Sie in der Google Cloud -Console die Seite Willkommen auf.

        Zur Begrüßungsseite

      2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
      3. Wählen Sie Ihre Organisation aus dem Listenfeld aus und suchen Sie dann nach dem Projektnamen. Der Projektname, die Projektnummer und die Projekt-ID werden in der Nähe der Überschrift Willkommen angezeigt.

        Es werden bis zu 4.000 Ressourcen angezeigt. Wenn Sie das gewünschte Projekt nicht finden, rufen Sie die Seite Ressourcen verwalten auf und filtern Sie die Liste mit dem Namen des Projekts.

      gcloud-CLI

      Sie können die Projektnummer eines Google Cloud -Projekts mit dem folgenden Befehl abrufen:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, wobei FOLDER_ID die ID des Ordners mit Assets mit IAM-Zulassungsrichtlinien ist, nach denen Sie suchen möchten.

      ID eines Ordners in Google Cloud ermitteln

      Google Cloud Console

      So rufen Sie die ID eines Ordners in Google Cloud ab:

      1. Rufen Sie die Google Cloud -Konsole auf.

        Rufen Sie die Google Cloud -Console auf.

      2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
      3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
      4. Suchen Sie nach dem Namen des Ordners. Die Ordner-ID wird neben dem Ordnernamen angezeigt.

      gcloud-CLI

      Sie können die ID eines Google Cloud -Ordners auf Organisationsebene mit dem folgenden Befehl abrufen:

      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)"

      Dabei ist TOP_LEVEL_FOLDER_NAME ein teilweiser oder vollständiger Stringabgleich mit dem Namen des Ordners. Entfernen Sie das --format-Flag, um weitere Informationen zu den gefundenen Ordnern aufzurufen.

      Der vorherige Befehl gibt nicht die IDs von Unterordnern in Ordnern zurück. Führen Sie dazu den folgenden Befehl mit der ID eines Ordners der obersten Ebene aus:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, wobei ORGANIZATION_ID die ID der Organisation ist, die Assets mit IAM-Zulassungsrichtlinien enthält, nach denen Sie suchen möchten.

      ID einer Google Cloud -Organisation ermitteln

      Google Cloud Console

      So ermitteln Sie die ID einer Google Cloud -Organisation:

      1. Rufen Sie die Google Cloud -Konsole auf.

        Rufen Sie die Google Cloud -Console auf.

      2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
      3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
      4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

      gcloud-CLI

      Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: Optional. Der Abfrageausdruck. Wenn nicht angegeben oder leer, wird im angegebenen Umfang nach allen Ressourcen gesucht. Informationen zum Erstellen einer Suchanfrage finden Sie unter Syntax von Suchanfragen.
  • ASSET_TYPE_#: Optional. Ein Array von suchbaren Asset-Typen. RE2-kompatible reguläre Ausdrücke werden unterstützt. Wenn der reguläre Ausdruck mit keinem unterstützten Asset-Typ übereinstimmt, wird ein INVALID_ARGUMENT-Fehler zurückgegeben. Wenn assetTypes nicht angegeben ist, werden alle Asset-Typen zurückgegeben.
  • ORDER_BY: Optional. Eine durch Kommas getrennte Liste von Feldern, die die Sortierreihenfolge der Ergebnisse angibt. Die Standardreihenfolge ist aufsteigend. Fügen Sie nach dem Feldnamen DESC ein, um die absteigende Reihenfolge anzugeben. Welche Felder sortiert werden können, erfahren Sie in der Referenzdokumentation.
  • PAGE_SIZE: Optional. Die Anzahl der Ergebnisse, die pro Seite zurückgegeben werden sollen. Der Maximalwert beträgt 500. Wenn der Wert auf 0 oder einen negativen Wert festgelegt ist, wird ein geeigneter Standardwert ausgewählt. Ein nextPageToken wird zurückgegeben, um nachfolgende Ergebnisse abzurufen.

  • PAGE_TOKEN: Optional. Lange Antwortantworten werden auf mehrere Seiten verteilt. Wenn pageToken nicht angegeben ist, wird die erste Seite zurückgegeben. Nachfolgende Seiten können aufgerufen werden, indem der Wert nextPageToken der vorherigen Antwort als Wert für pageToken verwendet wird.

Weitere Informationen zu allen Optionen finden Sie in der REST-Referenz.

Befehlsbeispiele

Führen Sie einen der folgenden Befehle aus, um eine Liste aller Compute Engine-Instanzen (compute.googleapis.com/Instance) im Projekt my-project mit einer IAM-Zulassungsrichtlinie aufzurufen, die sie an den Nutzer alex@example.com bindet. Die Ergebnisse werden in absteigender Reihenfolge nach Ressource (resource DESC) sortiert.

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "query": "policy:\"user:alex@example.com\"",
            "assetTypes": ["compute.googleapis.com/Instance"],
            "orderBy": "resource DESC"
          }' \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "query": "policy:\"user:alex@example.com\"",
  "assetTypes": ["compute.googleapis.com/Instance"],
  "orderBy": "resource DESC"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content

Beispielantwort

{
  "resource": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian",
  "project": "projects/0000000000000",
  "policy": {
    "bindings": [
      {
        "role": "roles/compute.viewer",
        "members": [
          "user:alex@example.com"
        ]
      },
      {
        "role": "roles/editor",
        "members": [
          "user:alex@example.com"
        ]
      },
      {
        "role": "roles/owner",
        "members": [
          "user:alex@example.com"
        ]
      }
    ]
  },
  "assetType": "compute.googleapis.com/Instance",
  "folders": [
    "folders/0000000000000"
  ],
  "organization": "organizations/0000000000000"
}

C#

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie hier.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


using Google.Api.Gax;
using Google.Cloud.Asset.V1;
using System.Collections.Generic;
using System.Linq;

public class SearchAllIamPoliciesSample
{
    public SearchAllIamPoliciesResponse SearchAllIamPolicies(string scope, string query)
    {
        // Create the client.
        AssetServiceClient client = AssetServiceClient.Create();

        // Build the request.
        SearchAllIamPoliciesRequest request = new SearchAllIamPoliciesRequest
        {
            Scope = scope,
            Query = query,
        };

        // Call the API.
        PagedEnumerable<SearchAllIamPoliciesResponse, IamPolicySearchResult> response = client.SearchAllIamPolicies(request);

        // Return the first page.
        IEnumerable<SearchAllIamPoliciesResponse> byPages = response.AsRawResponses();
        return byPages.First();
    }
}

Go

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie hier.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


// Sample search-all-iam-policies searches all IAM policies within the given scope.
package main

import (
	"context"
	"flag"
	"fmt"
	"log"

	asset "cloud.google.com/go/asset/apiv1"
	"cloud.google.com/go/asset/apiv1/assetpb"
	"google.golang.org/api/iterator"
)

func main() {
	scope := flag.String("scope", "", "Scope of the search.")
	query := flag.String("query", "", "Query statement.")
	flag.Parse()
	ctx := context.Background()
	client, err := asset.NewClient(ctx)
	if err != nil {
		log.Fatalf("asset.NewClient: %v", err)
	}
	defer client.Close()

	req := &assetpb.SearchAllIamPoliciesRequest{
		Scope: *scope,
		Query: *query,
	}
	it := client.SearchAllIamPolicies(ctx, req)
	for {
		policy, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			log.Fatal(err)
		}
		fmt.Println(policy)
	}
}

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie hier.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.api.gax.rpc.InvalidArgumentException;
import com.google.cloud.asset.v1.AssetServiceClient;
import com.google.cloud.asset.v1.AssetServiceClient.SearchAllIamPoliciesPagedResponse;
import com.google.cloud.asset.v1.SearchAllIamPoliciesRequest;
import java.io.IOException;

public class SearchAllIamPoliciesExample {

  // Searches for all the iam policies within the given scope.
  public static void searchAllIamPolicies(String scope, String query) {
    // TODO(developer): Replace these variables before running the sample.
    int pageSize = 0;
    String pageToken = "";

    SearchAllIamPoliciesRequest request =
        SearchAllIamPoliciesRequest.newBuilder()
            .setScope(scope)
            .setQuery(query)
            .setPageSize(pageSize)
            .setPageToken(pageToken)
            .build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AssetServiceClient client = AssetServiceClient.create()) {
      SearchAllIamPoliciesPagedResponse response = client.searchAllIamPolicies(request);
      System.out.println("Search completed successfully:\n" + response.getPage().getValues());
    } catch (IOException e) {
      System.out.println(String.format("Failed to create client:%n%s", e.toString()));
    } catch (InvalidArgumentException e) {
      System.out.println(String.format("Invalid request:%n%s", e.toString()));
    } catch (ApiException e) {
      System.out.println(String.format("Error during SearchAllIamPolicies:%n%s", e.toString()));
    }
  }
}

Node.js

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie hier.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const scope = '';
// const query = '';
// const pageSize = 0;
// const pageToken = '';

const util = require('util');
const {AssetServiceClient} = require('@google-cloud/asset');

const client = new AssetServiceClient();
const projectId = await client.getProjectId();

async function searchAllIamPolicies() {
  const request = {
    scope: `projects/${projectId}`,
    query: query,
    pageSize: pageSize,
    pageToken: pageToken,
  };
  const options = {
    autoPaginate: false,
  };

  // Handle the operation using the promise pattern.
  const result = await client.searchAllIamPolicies(request, options);
  // Do things with with the response.
  console.log(util.inspect(result, {depth: null}));
}

PHP

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie hier.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

use Google\Cloud\Asset\V1\Client\AssetServiceClient;
use Google\Cloud\Asset\V1\SearchAllIamPoliciesRequest;

/**
 * @param string $scope      Scope of the search
 * @param string $query      (Optional) Query statement
 * @param int    $pageSize   (Optional) Size of each result page
 * @param string $pageToken  (Optional) Token produced by the preceding call
 */
function search_all_iam_policies(
    string $scope,
    string $query = '',
    int $pageSize = 0,
    string $pageToken = ''
) {
    // Instantiate a client.
    $asset = new AssetServiceClient();

    // Run request
    $request = (new SearchAllIamPoliciesRequest())
        ->setScope($scope)
        ->setQuery($query)
        ->setPageSize($pageSize)
        ->setPageToken($pageToken);
    $response = $asset->searchAllIamPolicies($request);

    // Print the resources that the policies are set on
    foreach ($response->getPage() as $policy) {
        print($policy->getResource() . PHP_EOL);
    }
}

Python

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie hier.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.cloud import asset_v1

# TODO scope = 'Scope of the search'
# TODO query = 'Query statement'
# TODO page_size = Size of each result page

client = asset_v1.AssetServiceClient()
response = client.search_all_iam_policies(
    request={"scope": scope, "query": query, "page_size": page_size}
)
for policy in response:
    print(policy)
    break

Ruby

Informationen zum Installieren und Verwenden der Clientbibliothek für Cloud Asset Inventory finden Sie hier.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Asset Inventory zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

require "google/cloud/asset"

# scope = 'SCOPE_OF_THE_QUERY'
# query = 'QUERY_STATEMENT'
# page_size = 'SIZE_OF_EACH_RESULT_PAGE'
# page_token = 'TOKEN_PRODUCED_BY_THE_PRECEDING_CALL'
asset_service = Google::Cloud::Asset.asset_service

response = asset_service.search_all_iam_policies(
  scope:      scope,
  query:      query,
  page_size:  page_size,
  page_token: page_token
)
# Do things with the response
response.page.each do |policy|
  puts policy
end

Weitere Suchbeispiele

Die folgenden Codebeispiele zeigen spezifische Suchanfragen für gcloud und REST, die Ihnen dabei helfen sollen, eigene Suchanfragen zu erstellen.

Ressourcen mit IAM-Zulassungsrichtlinien

Im folgenden Beispiel wird gezeigt, wie im Projekt my-project nach allen Ressourcen mit IAM-Zulassungsrichtlinien gesucht wird.

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/my-project \
    --flatten="policy.bindings[].members[]" \
    --format="table(resource, policy.bindings.role, policy.bindings.members)"

REST

HTTP-Methode und URL:

GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "Authorization" = "Bearer $cred"
}


Invoke-WebRequest `
  -Method GET `
  -Headers $headers `
  -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content

Benannte Ressourcen mit IAM-Zulassungsrichtlinien

Im folgenden Beispiel wird gezeigt, wie Sie nach allen Ressourcen mit example im Namen suchen, für die IAM-Zulassungsrichtlinien gelten.

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/my-project \
    --query="resource:example"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

JSON-Text anfordern:

{
  "pageSize": 1,
  "query": "resource:example"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "pageSize": 1,
            "query": "resource:example"
          }' \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "pageSize": 1,
  "query": "resource:example"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content

IAM-Zulassungsrichtlinien für Projekte, Ordner und Organisationen

Im folgenden Beispiel wird gezeigt, wie Sie nach allen IAM-Zulassungsrichtlinien für alle Projekte und Ordner in der Organisation mit der ID my-organization-id suchen.

ID einer Google Cloud -Organisation ermitteln

Google Cloud Console

So ermitteln Sie die ID einer Google Cloud -Organisation:

  1. Rufen Sie die Google Cloud -Konsole auf.

    Rufen Sie die Google Cloud -Console auf.

  2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
  3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
  4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

gcloud-CLI

Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

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

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/my-organization-id \
    --asset-types=cloudresourcemanager.*

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

JSON-Text anfordern:

{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "assetTypes": "cloudresourcemanager.*",
            "pageSize": 1,
          }' \
     https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content

Inhaber eines Projekts

Im folgenden Beispiel wird gezeigt, wie Sie im Projekt my-project nach Hauptkonten mit der Rolle Inhaber (roles/owner) suchen.

Bei dieser Anfrage werden nur Hauptkonten zurückgegeben, denen die Rolle „Inhaber“ für das Projekt zugewiesen wurde. Hauptkonten, die die Rolle „Inhaber“ durch Richtlinienübernahme übernehmen, sind nicht enthalten.

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/my-project \
    --query="roles:roles/owner" \
    --asset-types=cloudresourcemanager.* \
    --flatten="policy.bindings[].members[]" \
    --format="table(policy.bindings.members)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

JSON-Text anfordern:

{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
  "query": "roles:roles/owner"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "assetTypes": "cloudresourcemanager.*",
            "pageSize": 1,
            "query": "roles:roles/owner"
          }' \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
  "query": "roles:roles/owner"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content

Projekte, bei denen ein Hauptkonto die Rolle „Inhaber“ hat

Im folgenden Beispiel wird gezeigt, wie Sie in der Organisation mit der ID my-organization-id nach Projekten suchen, in denen alex@example.com die Rolle „Inhaber“ (roles/owner) hat.

Diese Anfrage gibt nur die Projekte zurück, für die alex@example.com die Rolle „Inhaber“ zugewiesen wurde. Projekte, für die alex@example.com die Rolle „Inhaber“ übernommen hat, sind nicht enthalten.

ID einer Google Cloud -Organisation ermitteln

Google Cloud Console

So ermitteln Sie die ID einer Google Cloud -Organisation:

  1. Rufen Sie die Google Cloud -Konsole auf.

    Rufen Sie die Google Cloud -Console auf.

  2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
  3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
  4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

gcloud-CLI

Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

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

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/my-organization-id \
    --query="policy:(roles/owner alex@example.com)" \
    --asset-types=cloudresourcemanager.googleapis.com/Project \
    --format="table(resource)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

JSON-Text anfordern:

{
  "assetTypes": "cloudresourcemanager.googleapis.com/Project",
  "pageSize": 1,
  "query": "policy:(roles/owner alex@example.com)"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "assetTypes": "cloudresourcemanager.googleapis.com/Project",
            "pageSize": 1,
            "query": "policy:(roles/owner alex@example.com)"
          }' \
     https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "assetTypes": "cloudresourcemanager.googleapis.com/Project",
  "pageSize": 1,
  "query": "policy:(roles/owner alex@example.com)"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content

Rollen eines Hauptkontos für ein Projekt

Im folgenden Beispiel wird gezeigt, wie nach den Rollen gesucht wird, die alex@example.com im Projekt my-project hat.

Diese Anfrage gibt nur die Rollen zurück, die alex@example.com für das Projekt gewährt wurden. Rollen, die alex@example.com durch Richtlinienübernahme übernommen hat, sind nicht enthalten.

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/my-project \
    --query="policy:alex@example.com" \
    --asset-types=cloudresourcemanager.googleapis.com/Project \
    --flatten="policy.bindings[]" \
    --format="table(policy.bindings.role)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

JSON-Text anfordern:

{
  "assetTypes": "cloudresourcemanager.googleapis.com/Project",
  "pageSize": 1,
  "query": "policy:alex@example.com"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "assetTypes": "cloudresourcemanager.googleapis.com/Project",
            "pageSize": 1,
            "query": "policy:alex@example.com"
          }' \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "assetTypes": "cloudresourcemanager.googleapis.com/Project",
  "pageSize": 1,
  "query": "policy:alex@example.com"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content

Berechtigungen eines Hauptkontos für ein Projekt

Im folgenden Beispiel wird gezeigt, wie nach den Berechtigungen gesucht wird, die alex@example.com für das Projekt my-project hat.

Bei dieser Anfrage werden nur die Berechtigungen zurückgegeben, die alex@example.com für das Projekt hat. Es enthält keine Berechtigungen, die alex@example.com durch Richtlinienübernahme übernommen hat.

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/my-project \
    --query="policy:alex@example.com policy.role.permissions:\"\"" \
    --asset-types=cloudresourcemanager.* \
    --format="default(explanation.matchedPermissions)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

JSON-Text anfordern:

{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
  "query": "policy:alex@example.com  policy.role.permissions:\"\""
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "assetTypes": "cloudresourcemanager.*",
            "pageSize": 1,
            "query": "policy:alex@example.com  policy.role.permissions:\"\""
          }' \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
  "query": "policy:alex@example.com  policy.role.permissions:\"\""
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content

Berechtigte, die auf Cloud Storage-Buckets zugreifen können

Im folgenden Beispiel wird gezeigt, wie nach Principals gesucht wird, die im Projekt my-project auf Cloud Storage-Buckets zugreifen können.

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/my-project \
    --query="policy.role.permissions:storage.buckets" \
    --asset-types=cloudresourcemanager.* \
    --flatten="policy.bindings[].members[]" \
    --format="table(policy.bindings.members)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

JSON-Text anfordern:

{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
  "query": "policy.role.permissions:storage.buckets"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "assetTypes": "cloudresourcemanager.*",
            "pageSize": 1,
            "query": "policy.role.permissions:storage.buckets"
          }' \
     https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "assetTypes": "cloudresourcemanager.*",
  "pageSize": 1,
  "query": "policy.role.permissions:storage.buckets"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content

Dienstkonten mit der Rolle „Inhaber“

Im folgenden Beispiel wird gezeigt, wie Sie in der Organisation mit der my-organization-id nach Dienstkonten mit der Rolle „Inhaber“ (roles/owner) suchen. Mit dieser Abfrage können Sie Ihr Risikoprofil senken.

ID einer Google Cloud -Organisation ermitteln

Google Cloud Console

So ermitteln Sie die ID einer Google Cloud -Organisation:

  1. Rufen Sie die Google Cloud -Konsole auf.

    Rufen Sie die Google Cloud -Console auf.

  2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
  3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
  4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

gcloud-CLI

Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

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

gcloud

In diesem Beispiel wird der Befehl „grep“ verwendet, der in Cloud Shell und Unix-ähnlichen Betriebssystemen verfügbar ist.

gcloud asset search-all-iam-policies \
    --scope=organizations/my-organization-id \
    --query="policy:(roles/owner serviceAccount)" \
    --flatten="policy.bindings[].members[]" \
    --format="table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)" |
    grep serviceAccount

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

JSON-Text anfordern:

{
  "pageSize": 1,
  "query": "policy:(roles/owner serviceAccount)"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "pageSize": 1,
            "query": "policy:(roles/owner serviceAccount)"
          }' \
     https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "pageSize": 1,
  "query": "policy:(roles/owner serviceAccount)"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content

Ressourcen mit Rollen, die einer Domain gewährt wurden

Im folgenden Beispiel wird gezeigt, wie Sie in der Organisation mit der ID my-organization-id nach Ressourcen mit Rollen suchen, die der Domain example.com gewährt wurden.

ID einer Google Cloud -Organisation ermitteln

Google Cloud Console

So ermitteln Sie die ID einer Google Cloud -Organisation:

  1. Rufen Sie die Google Cloud -Konsole auf.

    Rufen Sie die Google Cloud -Console auf.

  2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
  3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
  4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

gcloud-CLI

Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

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

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/my-organization-id \
    --query="policy:\"domain:example.com\"" \
    --flatten="policy.bindings[]" \
    --format="table(resource, policy.bindings.role)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

JSON-Text anfordern:

{
  "pageSize": 1,
  "query": "policy:\"domain:DOMAIN_NAME\""
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "pageSize": 1,
            "query": "policy:\"domain:DOMAIN_NAME\""
          }' \
     https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "pageSize": 1,
  "query": "policy:\"domain:DOMAIN_NAME\""
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content

Ressourcen mit Rollen, die der Allgemeinheit gewährt wurden

Im folgenden Beispiel wird gezeigt, wie Sie in der Organisation mit der ID my-organization-id nach Ressourcen mit Rollen suchen, die der Allgemeinheit gewährt wurden.

ID einer Google Cloud -Organisation ermitteln

Google Cloud Console

So ermitteln Sie die ID einer Google Cloud -Organisation:

  1. Rufen Sie die Google Cloud -Konsole auf.

    Rufen Sie die Google Cloud -Console auf.

  2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
  3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
  4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

gcloud-CLI

Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

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

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/my-organization-id \
    --query="memberTypes:(allUsers OR allAuthenticatedUsers)" \
    --format="table(resource)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

JSON-Text anfordern:

{
  "pageSize": 1,
  "query": "memberTypes:(allUsers OR allAuthenticatedUsers)"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "pageSize": 1,
            "query": "memberTypes:(allUsers OR allAuthenticatedUsers)"
          }' \
     https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "pageSize": 1,
  "query": "memberTypes:(allUsers OR allAuthenticatedUsers)"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content

Hauptkonten, die IAM-Zulassungsrichtlinien in einer Organisation ändern können

Im folgenden Beispiel wird gezeigt, wie Sie nach Hauptkonten suchen, die IAM-Zulassungsrichtlinien in der Organisation mit der ID my-organization-id ändern können.

ID einer Google Cloud -Organisation ermitteln

Google Cloud Console

So ermitteln Sie die ID einer Google Cloud -Organisation:

  1. Rufen Sie die Google Cloud -Konsole auf.

    Rufen Sie die Google Cloud -Console auf.

  2. Klicken Sie in der Menüleiste auf das Listenfeld Schalter.
  3. Wählen Sie Ihre Organisation aus dem Listenfeld aus.
  4. Klicken Sie auf den Tab Alle. Die Organisations-ID wird neben dem Namen der Organisation angezeigt.

gcloud-CLI

Sie können die ID einer Google Cloud -Organisation mit dem folgenden Befehl abrufen:

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

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/my-organization-id \
    --query="policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" \
    --format="json(resource, policy.bindings, explanation.matchedPermissions)"

REST

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

JSON-Text anfordern:

{
  "pageSize": 1,
  "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)"
}

Befehlsbeispiele

curl (Linux, macOS oder Cloud Shell)

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
            "pageSize": 1,
            "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)"
          }' \
     https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-HTTP-Method-Override" = "GET";
  "Authorization" = "Bearer $cred"
}


$body = @"
{
  "pageSize": 1,
  "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)"
}
"@

Invoke-WebRequest `
  -Method POST `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $body `
  -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content