IAM-Richtlinie für eine Reservierung abrufen

Ruft die IAM-Richtlinie (Identity and Access Management) für eine BigQuery-Reservierung ab. Die Richtlinie definiert, welche Hauptkonten welche Rollen haben, und wird verwendet, um die Einstellungen für die Zugriffssteuerung für die Ressource aufzurufen.

Codebeispiel

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.api.gax.rpc.NotFoundException;
import com.google.cloud.bigquery.reservation.v1.ReservationName;
import com.google.cloud.bigquery.reservation.v1.ReservationServiceClient;
import com.google.iam.v1.Binding;
import com.google.iam.v1.GetIamPolicyRequest;
import com.google.iam.v1.Policy;
import java.io.IOException;

public class GetIamPolicy {

  /**
   * Retrieves the IAM policy for a specified BigQuery reservation. An IAM policy is a collection
   * of bindings that associates one or more principals with a single role.
   *
   * @param projectId The Google Cloud project ID (for example, "example-project-id").
   * @param location The geographic location of the reservation (for example, "us-central1").
   * @param reservationId The ID of the reservation to retrieve the IAM policy for (for example,
   *     "example-reservation").
   */
  public static void getReservationIamPolicy(
      String projectId, String location, String reservationId) {
    ReservationName resource = ReservationName.of(projectId, location, reservationId);

    GetIamPolicyRequest request =
        GetIamPolicyRequest.newBuilder().setResource(resource.toString()).build();

    try (ReservationServiceClient client = ReservationServiceClient.create()) {
      Policy policy = client.getIamPolicy(request);
      System.out.printf("Got IAM policy for reservation: %s%n", resource);
      for (Binding binding : policy.getBindingsList()) {
        System.out.printf("  Role: %s%n", binding.getRole());
        System.out.printf("  Members: %s%n", binding.getMembersList());
      }
    } catch (NotFoundException err) {
      System.err.printf(
          "error: reservation '%s' not found: %s%n", resource, err.getMessage());
    } catch (ApiException | IOException err) {
      System.err.printf(
          "error: failed to get IAM policy for reservation '%s': %s%n", resource, err.getMessage());
    }
  }

Node.js

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Node.js-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

const {
  ReservationServiceClient,
} = require('@google-cloud/bigquery-reservation').v1;
const {status} = require('@grpc/grpc-js');

const client = new ReservationServiceClient();

/**
 * Gets the IAM policy for a reservation.
 * An IAM policy is a collection of bindings that associates one or more members,
 * such as service accounts or users, with a single role.
 *
 * @param {string} projectId - Google Cloud project ID, for example "example-project-id".
 * @param {string} location - Location of the reservation, for example "us-central1".
 * @param {string} reservationId - ID of the reservation, for example "example-reservation".
 */
async function getReservationIamPolicy(
  projectId,
  location = 'us-central1',
  reservationId = 'example-reservation',
) {
  const resource = `projects/${projectId}/locations/${location}/reservations/${reservationId}`;
  const request = {
    resource,
  };

  try {
    const [policy] = await client.getIamPolicy(request);

    console.log(`Policy for reservation ${reservationId}:`);
    if (policy.bindings && policy.bindings.length > 0) {
      console.log(JSON.stringify(policy.bindings, null, 2));
    } else {
      console.log('This reservation has no policy bindings.');
    }
  } catch (err) {
    if (err.code === status.NOT_FOUND) {
      console.log(
        `Reservation '${reservationId}' not found in project '${projectId}' at location '${location}'.`,
      );
    } else {
      console.error('Error getting IAM policy:', err);
    }
  }
}

Python

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

from google.api_core.exceptions import NotFound
from google.cloud import bigquery_reservation_v1

client = bigquery_reservation_v1.ReservationServiceClient()


def get_reservation_iam_policy(project_id: str, location: str, reservation_id: str):
    """Gets the IAM policy for a reservation.

    An IAM policy is a collection of bindings that associates one or more
    principals with a single role. This sample demonstrates how to retrieve
    the policy for a reservation.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the reservation, such as "us-central1".
        reservation_id: The ID of the reservation to get the policy for.
    """
    resource = client.reservation_path(project_id, location, reservation_id)

    try:
        policy = client.get_iam_policy(resource=resource)

        print(f"Got IAM policy for reservation: {resource}")
        for binding in policy.bindings:
            print(f"  Role: {binding.role}")
            print(f"  Members: {binding.members}")
    except NotFound:
        print(f"Reservation not found: {resource}")

Nächste Schritte

Wenn Sie nach Codebeispielen für andere Produkte von Google Cloud suchen und filtern möchten, können Sie den Beispielbrowser fürGoogle Cloud verwenden.