Obtener la política de gestión de identidades y accesos de una reserva

Obtiene la política de gestión de identidades y accesos (IAM) de una reserva de BigQuery. La política define qué principales tienen qué roles y se usa para ver la configuración de control de acceso del recurso.

Código de ejemplo

Node.js

Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

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

Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

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

Siguientes pasos

Para buscar y filtrar ejemplos de código de otros productos de Google Cloud , consulta el Google Cloud navegador de ejemplos.