Administra la creación de reservas compartidas

De forma predeterminada, los proyectos no pueden crear ni modificar reservas compartidas. En este documento, se explica cómo permitir o restringir que los proyectos de tu organización Google Cloud creen y modifiquen reservas compartidas. Las reservas compartidas te ayudan a maximizar el uso de la capacidad reservada en todos los proyectos, así como a administrar una reserva en lugar de muchas.

Para obtener más información sobre las prácticas recomendadas para crear y usar reservas compartidas, consulta Prácticas recomendadas para las reservas compartidas.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    2. Set a default region and zone.

Roles obligatorios

Para obtener los permisos que necesitas para permitir o restringir que los proyectos creen reservas compartidas, pídele a tu administrador que te otorgue el rol de IAM Administrador de políticas de la organización (roles/orgpolicy.policyAdmin) en la organización. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para permitir o restringir que los proyectos creen reservas compartidas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para permitir o restringir que los proyectos creen reservas compartidas:

  • Para editar las políticas de la organización: orgpolicy.policy.set en la organización
  • Para ver las políticas de la organización, usa orgpolicy.policy.get en la organización.

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Permite o restringe la creación de reservas compartidas para los proyectos

Para permitir o restringir que un proyecto cree reservas compartidas, modifica la lista de entidades permitidas dentro de la restricción de la política de la organización Proyectos de propietario de las reservas compartidas (compute.sharedReservationsOwnerProjects).

En las siguientes secciones, se explica cómo ver o editar la restricción de política de reservas compartidas en tu proyecto u organización.

Visualiza la restricción de la política de la organización de reservas compartidas

Para ver si tu proyecto u organización tienen habilitada la restricción de proyectos de propietario de las reservas compartidas (compute.sharedReservationsOwnerProjects), selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona el proyecto o la organización para los que deseas ver las políticas de la organización.

  3. En el campo Filter, ingresa constraints/compute.sharedReservationsOwnerProjects.

  4. En la columna Nombre, haz clic en Proyectos propietarios de reservas compartidas. Aparecerá la página Detalles de la política.

  5. En la sección Política efectiva, verifica si tu proyecto u organización tienen permiso para crear y modificar reservas compartidas.

gcloud

Para ver a qué proyectos permite la restricción compute.sharedReservationsOwnerProjects crear y cambiar reservas compartidas, haz lo siguiente:

  1. Para descargar la política para tu organización como un archivo llamado policy.yaml, usa el comando gcloud resource-manager org-policies describe:

    gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
        --organization=ORGANIZATION_ID > policy.yaml
    

    Reemplaza ORGANIZATION_ID por el ID de tu organización.

  2. Abre el archivo policy.yaml en el editor de texto que prefieras.

  3. Consulta la restricción compute.sharedReservationsOwnerProjects. Los proyectos que pueden crear y modificar reservas compartidas se enumeran en el campo allowedValues, como se muestra en el siguiente ejemplo:

    ...
    constraint: constraints/compute.sharedReservationsOwnerProjects
    listPolicy:
      allowedValues:
      - projects/EXAMPLE_PROJECT_NUMBER1
      - projects/EXAMPLE_PROJECT_NUMBER2
      - projects/EXAMPLE_PROJECT_NUMBER3
      ...
    ...
    
  4. Opcional: Para borrar el archivo policy.yaml, haz una de las siguientes acciones:

    • Si usas una terminal de Linux o macOS, ejecuta el siguiente comando:

      rm policy.yaml
      
    • Si usas una terminal de Windows, ejecuta el siguiente comando:

      del policy.yaml
      

Edita la restricción de la política de la organización de reservas compartidas

Para cambiar qué proyectos de tu organización pueden crear y modificar reservas compartidas, selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona la organización para la que deseas editar las políticas de la organización.

  3. En el campo Filter, ingresa constraints/compute.sharedReservationsOwnerProjects.

  4. En la columna Nombre, haz clic en Proyectos propietarios de reservas compartidas. Aparecerá la página Detalles de la política.

  5. Haz clic en Administrar política. Aparecerá la página Detalles de la política.

  6. Selecciona Anular la política del elemento superior. Luego, en la sección Aplicación de la política, selecciona cómo deseas aplicar la política:

    • Combinar con superior: Esta opción combina la política a nivel del proyecto con la política a nivel de la organización. Los proyectos permitidos en cualquiera de los niveles pueden crear reservas compartidas.

    • Reemplazar: Esta opción anula cualquier política heredada de niveles superiores. Solo los proyectos que se permiten de forma explícita en este nivel pueden crear reservas compartidas.

  7. Haz clic en Agregar una regla.

  8. En la lista Valores de la política, selecciona Personalizado.

  9. En la lista Tipo de política, selecciona una de las siguientes opciones:

    • Para autorizar uno o más proyectos a crear o modificar reservas compartidas, selecciona Permitir.

    • Para evitar que uno o más proyectos creen o modifiquen reservas compartidas, selecciona Deny.

  10. En el campo Valor personalizado, ingresa el número del proyecto al que deseas aplicar esta regla. Para cada proyecto adicional al que quieras aplicar la regla, haz clic en Agregar valor y, luego, repite este paso.

  11. Para aplicar estos cambios, haz clic en Establecer política. Aparecerá la página Políticas de la organización.

gcloud

Para cambiar a qué proyectos permite la restricción compute.sharedReservationsOwnerProjects crear y cambiar reservas compartidas, usa uno de los siguientes métodos:

  • Para otorgar permiso a un solo proyecto para crear y modificar reservas compartidas, usa el comando gcloud resource-manager org-policies allow. Puedes repetir este comando para cada proyecto al que le quieras otorgar este permiso.

    gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \
        --organization=ORGANIZATION_ID
    

    Reemplaza lo siguiente:

  • Para otorgar o revocar los permisos a varios proyectos para crear y modificar reservas compartidas, reemplaza la restricción de la política de la organización. Para ello, completa los siguientes pasos:

    1. Para descargar la política para tu organización como un archivo llamado policy.yaml, usa el comando gcloud resource-manager org-policies describe:

      gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
          --organization=ORGANIZATION_ID > policy.yaml
      
    2. Abre el archivo policy.yaml en el editor de texto que prefieras.

    3. Modifica el campo allowedValues para enumerar todos los proyectos que pueden crear y modificar reservas compartidas.

      • Para cada proyecto al que quieras otorgar permiso, agrega el número de proyecto en una línea nueva dentro del campo allowedValues.

      • Para cada proyecto al que le quieras revocar el permiso para crear y modificar reservas compartidas, quita el número del proyecto del campo allowedValues.

      El archivo policy.yaml es similar al siguiente ejemplo:

      ...
      constraint: constraints/compute.sharedReservationsOwnerProjects
      listPolicy:
        allowedValues:
        - projects/EXAMPLE_PROJECT_NUMBER1
        - projects/EXAMPLE_PROJECT_NUMBER2
        - projects/EXAMPLE_PROJECT_NUMBER3
        ...
      ...
      
    4. Guarda el archivo policy.yaml y cierra el editor de texto.

    5. Para actualizar la política de tu organización, usa el comando gcloud resource-manager org-policies set-policy:

      gcloud resource-manager org-policies set-policy \
          --organization=ORGANIZATION_ID policy.yaml
      
    6. Opcional: Para borrar el archivo policy.yaml, haz una de las siguientes acciones:

      • Si usas una terminal de Linux o macOS, ejecuta el siguiente comando:

        rm policy.yaml
        
      • Si usas una terminal de Windows, ejecuta el siguiente comando:

        del policy.yaml
        

Los cambios pueden tardar hasta 15 minutos en aplicarse.

¿Qué sigue?