Menelusuri kebijakan izin IAM pada resource

Anda dapat menelusuri kebijakan izin IAM pada resource di project, folder, atau organisasi, dan memfilter hasil yang ditampilkan menggunakan kueri.

Sebelum memulai

  1. Aktifkan Cloud Asset Inventory API di project tempat Anda menjalankan perintah Cloud Asset Inventory.

    Mengaktifkan Cloud Asset Inventory API

  2. Pastikan akun Anda memiliki peran yang benar untuk memanggil Cloud Asset Inventory API. Untuk izin individual bagi setiap jenis panggilan, lihat Izin.

Membuat kueri

Sebelum membuat kueri, sebaiknya mulai dengan permintaan penelusuran yang tidak menentukan kueri. Gunakan kolom dan nilai dari respons lengkap untuk membuat kueri menggunakan sintaksis kueri penelusuran, dan pertajam hingga hasil yang Anda inginkan ditampilkan.

Kolom yang dapat digunakan dalam kueri dijelaskan dalam dokumentasi referensi IamPolicySearchResult.

Perhatikan batasan berikut saat membuat kueri:

  • Kolom policy adalah objek bertingkat, sehingga hanya dapat digunakan dengan operator :.

  • Tidak semua jenis aset dapat ditelusuri. Lihat Jenis resource untuk mengonfirmasi apakah layanan tidak tersedia di API penelusuran.

Kolom tambahan berikut juga dapat digunakan untuk membatasi hasil Anda ke jenis akun utama, izin, atau peran tertentu:

Kolom Deskripsi
memberTypes

Berisi salah satu jenis akun utama IAM berikut:

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

Berisi izin IAM tertentu.

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

Berisi peran IAM tertentu.

Contoh
roles=roles/storage.objectAdmin

Menelusuri kebijakan izin IAM

Sebelum membuat kueri, sebaiknya mulai dengan permintaan penelusuran yang tidak menentukan kueri. Gunakan kolom dan nilai dari respons lengkap untuk membuat kueri menggunakan sintaksis kueri penelusuran, dan pertajamnya hingga hasil yang Anda inginkan ditampilkan.

Konsol

Untuk menelusuri metadata kebijakan izin IAM, selesaikan langkah-langkah berikut.

  1. Buka halaman Inventaris Aset di konsol Google Cloud.

    Buka Inventaris Aset

  2. Beralihlah ke project, folder, atau organisasi yang ingin Anda telusuri.
  3. Klik tab Kebijakan IAM.
  4. Untuk menelusuri kebijakan izinkan, masukkan kueri di kolom Filter. Lihat Sintaksis kueri penelusuran untuk mempelajari cara menulis kueri penelusuran.

    Untuk mempermudah pembuatan kueri, Anda dapat mengklik kolom Filter untuk menampilkan dan menambahkan kolom yang dapat ditelusuri yang tersedia ke kueri Anda.

Setelah melakukan penelusuran, kebijakan izin yang cocok dengan kueri akan tercantum dalam tabel Hasil. Klik dua kali kueri untuk mengeditnya, atau gunakan panel Filter hasil untuk menerapkan Preset kueri cepat atau membatasi hasil penelusuran berdasarkan kriteria tertentu.

Untuk melihat kueri sebagai perintah Google Cloud CLI, klik Lihat kueri.

Untuk mengekspor hasilnya, klik Download CSV.

gcloud

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

Berikan nilai berikut:

  • SCOPE_PATH: Gunakan salah satu nilai berikut:

    Nilai yang diizinkan adalah:

    • projects/PROJECT_ID, dengan PROJECT_ID adalah project ID yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.
    • projects/PROJECT_NUMBER, dengan PROJECT_NUMBER adalah nomor project yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.

      Cara menemukan nomor project Google Cloud

      Konsol Google Cloud

      Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka halaman Selamat Datang di konsol Google Cloud.

        Buka Selamat Datang

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat judul Selamat Datang.

        Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang dicari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut.

      gcloud CLI

      Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, dengan FOLDER_ID adalah ID folder yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.

      Cara menemukan ID folder Google Cloud

      Konsol Google Cloud

      Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      4. Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.

      gcloud CLI

      Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:

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

      Dengan TOP_LEVEL_FOLDER_NAME adalah pencocokan string sebagian atau penuh untuk nama folder. Hapus tanda --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

      Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, dengan ORGANIZATION_ID adalah ID organisasi yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.

      Cara menemukan ID organisasi Google Cloud

      Konsol Google Cloud

      Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

      gcloud CLI

      Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: Opsional. Ekspresi kueri. Jika tidak ditentukan atau kosong, semua resource akan ditelusuri dalam cakupan yang ditentukan. Untuk mempelajari cara menulis kueri penelusuran, lihat Sintaksis kueri penelusuran.
  • ASSET_TYPE_#: Opsional. Daftar jenis aset yang dapat ditelusuri yang dipisahkan koma. Ekspresi reguler yang kompatibel dengan RE2 didukung. Jika ekspresi reguler tidak cocok dengan jenis aset yang didukung, error INVALID_ARGUMENT akan ditampilkan. Jika --asset-types tidak ditentukan, semua jenis aset akan ditampilkan.
  • ORDER_BY: Opsional. Daftar kolom yang dipisahkan koma yang menentukan urutan pengurutan hasil. Urutan defaultnya adalah menaik. Tambahkan DESC setelah nama kolom untuk menunjukkan urutan menurun. Lihat dokumentasi referensi untuk mengetahui kolom yang dapat diurutkan.

Anda dapat menggunakan flag --format dan --flatten untuk memformat output gcloud CLI.

Lihat referensi gcloud CLI untuk semua opsi.

Contoh

Jalankan perintah berikut untuk mendapatkan daftar semua instance Compute Engine (compute.googleapis.com/Instance) di project my-project dengan kebijakan izin IAM yang mengikat instance tersebut ke pengguna alex@example.com. Hasilnya diurutkan dalam urutan menurun menurut resource (resource DESC).

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"

Contoh respons

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Berikan nilai berikut:

  • SCOPE_PATH: Gunakan salah satu nilai berikut:

    Nilai yang diizinkan adalah:

    • projects/PROJECT_ID, dengan PROJECT_ID adalah project ID yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.
    • projects/PROJECT_NUMBER, dengan PROJECT_NUMBER adalah nomor project yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.

      Cara menemukan nomor project Google Cloud

      Konsol Google Cloud

      Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka halaman Selamat Datang di konsol Google Cloud.

        Buka Selamat Datang

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat judul Selamat Datang.

        Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang dicari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut.

      gcloud CLI

      Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, dengan FOLDER_ID adalah ID folder yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.

      Cara menemukan ID folder Google Cloud

      Konsol Google Cloud

      Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      4. Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.

      gcloud CLI

      Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:

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

      Dengan TOP_LEVEL_FOLDER_NAME adalah pencocokan string sebagian atau penuh untuk nama folder. Hapus tanda --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

      Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, dengan ORGANIZATION_ID adalah ID organisasi yang memiliki aset dengan kebijakan izin IAM yang ingin Anda telusuri.

      Cara menemukan ID organisasi Google Cloud

      Konsol Google Cloud

      Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

      gcloud CLI

      Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • QUERY: Opsional. Ekspresi kueri. Jika tidak ditentukan atau kosong, semua resource akan ditelusuri dalam cakupan yang ditentukan. Untuk mempelajari cara menulis kueri penelusuran, lihat Sintaksis kueri penelusuran.
  • ASSET_TYPE_#: Opsional. Array jenis aset yang dapat ditelusuri. Ekspresi reguler yang kompatibel dengan RE2 didukung. Jika ekspresi reguler tidak cocok dengan jenis aset yang didukung, error INVALID_ARGUMENT akan ditampilkan. Jika assetTypes tidak ditentukan, semua jenis aset akan ditampilkan.
  • ORDER_BY: Opsional. Daftar kolom yang dipisahkan koma yang menentukan urutan pengurutan hasil. Urutan defaultnya adalah menaik. Tambahkan DESC setelah nama kolom untuk menunjukkan urutan menurun. Lihat dokumentasi referensi untuk mengetahui kolom yang dapat diurutkan.
  • PAGE_SIZE: Opsional. Jumlah hasil yang akan ditampilkan per halaman. Maksimumnya 500. Jika nilai ditetapkan ke 0 atau nilai negatif, default yang sesuai akan dipilih. nextPageToken ditampilkan untuk mengambil hasil berikutnya.

  • PAGE_TOKEN: Opsional. Respons permintaan yang panjang dipisahkan di beberapa halaman. Jika pageToken tidak ditentukan, halaman pertama akan ditampilkan. Halaman berikutnya dapat dipanggil menggunakan nextPageToken respons sebelumnya sebagai nilai pageToken.

Lihat referensi REST untuk semua opsi.

Contoh perintah

Jalankan salah satu perintah berikut untuk mendapatkan daftar semua instance Compute Engine (compute.googleapis.com/Instance) di project my-project dengan kebijakan izin IAM yang mengikat instance tersebut ke pengguna alex@example.com. Hasilnya diurutkan dalam urutan menurun menurut resource (resource DESC).

curl (Linux, macOS, atau 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

Contoh respons

{
  "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#

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Inventaris Aset Cloud, lihat library klien Inventaris Aset Cloud.

Untuk melakukan autentikasi ke Cloud Asset Inventory, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Inventaris Aset Cloud, lihat library klien Inventaris Aset Cloud.

Untuk melakukan autentikasi ke Cloud Asset Inventory, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


// 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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Inventaris Aset Cloud, lihat library klien Inventaris Aset Cloud.

Untuk melakukan autentikasi ke Cloud Asset Inventory, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Inventaris Aset Cloud, lihat library klien Inventaris Aset Cloud.

Untuk melakukan autentikasi ke Cloud Asset Inventory, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

/**
 * 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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Inventaris Aset Cloud, lihat library klien Inventaris Aset Cloud.

Untuk melakukan autentikasi ke Cloud Asset Inventory, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Inventaris Aset Cloud, lihat library klien Inventaris Aset Cloud.

Untuk melakukan autentikasi ke Cloud Asset Inventory, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Inventaris Aset Cloud, lihat library klien Inventaris Aset Cloud.

Untuk melakukan autentikasi ke Cloud Asset Inventory, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Contoh penelusuran tambahan

Contoh kode berikut menunjukkan kueri penelusuran tertentu untuk gcloud dan REST guna membantu Anda membuat penelusuran Anda sendiri.

Resource dengan kebijakan izin IAM

Contoh berikut menunjukkan cara menelusuri semua resource dengan kebijakan izin IAM di project my-project.

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

Metode HTTP dan URL:

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

Contoh perintah

curl (Linux, macOS, atau 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

Resource bernama dengan kebijakan izin IAM

Contoh berikut menunjukkan cara menelusuri semua resource dengan example dalam namanya yang memiliki kebijakan izin IAM.

gcloud

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

REST

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Kebijakan izin IAM di project, folder, dan organisasi

Contoh berikut menunjukkan cara menelusuri semua kebijakan izin IAM di semua project dan folder dalam organisasi dengan ID my-organization-id.

Cara menemukan ID organisasi Google Cloud

Konsol Google Cloud

Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

  1. Buka konsol Google Cloud.

    Buka konsol Google Cloud

  2. Klik kotak daftar pengalih di panel menu.
  3. Pilih organisasi Anda dari kotak daftar.
  4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

gcloud CLI

Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Pemilik di project

Contoh berikut menunjukkan cara menelusuri akun utama dengan peran Pemilik (roles/owner) di project my-project.

Permintaan ini hanya menampilkan akun utama yang telah diberi peran Pemilik di project. Daftar ini tidak mencakup akun utama yang mewarisi peran Pemilik melalui pewarisan kebijakan.

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Project tempat akun utama memiliki peran pemilik

Contoh berikut menunjukkan cara menelusuri project tempat alex@example.com memiliki peran Pemilik (roles/owner), di organisasi dengan ID my-organization-id.

Permintaan ini hanya menampilkan project tempat alex@example.com telah diberi peran Pemilik. Hal ini tidak mencakup project yang alex@example.com telah warisi peran Pemilik.

Cara menemukan ID organisasi Google Cloud

Konsol Google Cloud

Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

  1. Buka konsol Google Cloud.

    Buka konsol Google Cloud

  2. Klik kotak daftar pengalih di panel menu.
  3. Pilih organisasi Anda dari kotak daftar.
  4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

gcloud CLI

Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Peran yang dimiliki akun utama di project

Contoh berikut menunjukkan cara menelusuri peran yang dimiliki alex@example.com di project my-project.

Permintaan ini hanya menampilkan peran yang diberikan alex@example.com pada project. Daftar ini tidak menyertakan peran yang diwarisi alex@example.com melalui pewarisan kebijakan.

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Izin yang dimiliki akun utama di project

Contoh berikut menunjukkan cara menelusuri izin yang dimiliki alex@example.com pada project my-project.

Permintaan ini hanya menampilkan izin yang dimiliki alex@example.com pada project. Izin ini tidak mencakup izin yang diwarisi alex@example.com melalui pewarisan kebijakan.

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Akun utama yang dapat mengakses bucket Cloud Storage

Contoh berikut menunjukkan cara menelusuri akun utama yang dapat mengakses bucket Cloud Storage dalam project my-project.

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Akun layanan yang memiliki peran pemilik

Contoh berikut menunjukkan cara menelusuri akun layanan dengan peran Pemilik (roles/owner) di organisasi dengan my-organization-id. Anda dapat menggunakan kueri ini untuk membantu mengurangi profil risiko Anda.

Cara menemukan ID organisasi Google Cloud

Konsol Google Cloud

Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

  1. Buka konsol Google Cloud.

    Buka konsol Google Cloud

  2. Klik kotak daftar pengalih di panel menu.
  3. Pilih organisasi Anda dari kotak daftar.
  4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

gcloud CLI

Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

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

gcloud

Contoh ini menggunakan perintah `grep`, yang tersedia di Cloud Shell dan sistem operasi mirip Unix.

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Resource dengan peran yang diberikan ke domain

Contoh berikut menunjukkan cara menelusuri resource dengan peran yang diberikan ke domain example.com, di organisasi dengan ID my-organization-id.

Cara menemukan ID organisasi Google Cloud

Konsol Google Cloud

Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

  1. Buka konsol Google Cloud.

    Buka konsol Google Cloud

  2. Klik kotak daftar pengalih di panel menu.
  3. Pilih organisasi Anda dari kotak daftar.
  4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

gcloud CLI

Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Resource dengan peran yang diberikan kepada publik

Contoh berikut menunjukkan cara menelusuri resource dengan peran yang diberikan kepada publik, di organisasi dengan ID my-organization-id.

Cara menemukan ID organisasi Google Cloud

Konsol Google Cloud

Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

  1. Buka konsol Google Cloud.

    Buka konsol Google Cloud

  2. Klik kotak daftar pengalih di panel menu.
  3. Pilih organisasi Anda dari kotak daftar.
  4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

gcloud CLI

Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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

Akun utama yang dapat mengubah kebijakan izin IAM di organisasi

Contoh berikut menunjukkan cara menelusuri akun utama yang dapat mengubah kebijakan izin IAM di organisasi dengan ID my-organization-id.

Cara menemukan ID organisasi Google Cloud

Konsol Google Cloud

Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

  1. Buka konsol Google Cloud.

    Buka konsol Google Cloud

  2. Klik kotak daftar pengalih di panel menu.
  3. Pilih organisasi Anda dari kotak daftar.
  4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

gcloud CLI

Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

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

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Contoh perintah

curl (Linux, macOS, atau 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