Crea derechos en el Privileged Access Manager

Puedes crear derechos para permitir la elevación temporal de privilegios para un conjunto seleccionado de principales. Ten en cuenta lo siguiente cuando crees derechos:

  • Puedes crear derechos a nivel de la organización, la carpeta o el proyecto. Los roles que otorga un derecho en cada nivel siguen la Cloud de Confiance by S3NS jerarquía de recursos. Por ejemplo, los roles que otorga un derecho a nivel de la organización se heredan a nivel de la carpeta y el proyecto.

  • Si el nivel Premium o Enterprise de Security Command Center está activado a nivel de la organización, puedes exigir más de un nivel de aprobación por derecho, lo que permite hasta dos niveles de aprobaciones secuenciales para cada derecho. Puedes exigir hasta cinco aprobaciones por nivel.

    Después de recibir la cantidad requerida de aprobaciones de primer nivel, se envían notificaciones por correo electrónico a los aprobadores de segundo nivel. Después de recibir la cantidad requerida de aprobaciones de segundo nivel, el subsidio pasa al estado active. Si algún aprobador rechaza el otorgamiento, este pasa al estado denied y no se envía a ningún aprobador adicional.

    Esta función está disponible en vista previa.

  • Si se permite que las cuentas de servicio aprueben las concesiones para este recurso, puedes agregar cuentas de servicio e identidades de grupos de cargas de trabajo como aprobadores. Si quieres obtener información para habilitar este parámetro de configuración, consulta Configura los parámetros de configuración de Privileged Access Manager.

    Esta función está disponible en vista previa.

  • Si agregas un grupo como solicitante a un derecho, todas las cuentas individuales de ese grupo pueden solicitar una concesión de ese derecho. Sin embargo, solo la cuenta individual que solicita el otorgamiento puede recibir privilegios elevados.

  • Si agregas un grupo como aprobador a un derecho, todas las cuentas individuales de ese grupo pueden aprobar o rechazar una solicitud de concesión.

  • Se admiten los roles básicos (administrador, escritor y lector), pero no los roles básicos heredados (propietario, editor y visualizador).

  • No incluyas roles de agente de servicio en los derechos.

    Algunos roles de agente de servicio contienen permisos muy potentes, y los permisos dentro de estos roles pueden cambiar sin previo aviso. En su lugar, elige una función predefinida o crea una función personalizada con los permisos que necesites.

Antes de comenzar

Para obtener los permisos que necesitas para crear derechos, pídele a tu administrador que te otorgue los siguientes roles de IAM en la organización, la carpeta o el proyecto para los que deseas crear derechos:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear derechos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear derechos:

  • Para crear derechos y otorgamientos para una organización, haz lo siguiente:
    • resourcemanager.organizations.get
    • resourcemanager.organizations.setIamPolicy
    • privilegedaccessmanager.entitlements.create
  • Para crear derechos y otorgamientos para una carpeta, sigue estos pasos:
    • resourcemanager.folders.get
    • resourcemanager.folders.setIamPolicy
    • privilegedaccessmanager.entitlements.create
  • Para crear derechos y otorgamientos para un proyecto, haz lo siguiente:
    • resourcemanager.projects.get
    • resourcemanager.projects.setIamPolicy
    • privilegedaccessmanager.entitlements.create

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

Crea derechos

Console

  1. Ve a la página Privileged Access Manager.

    Ir a Privileged Access Manager

  2. Selecciona la organización, la carpeta o el proyecto al que deseas aplicar el derecho.

  3. Haz clic en la pestaña Derechos.

  4. Haz clic en Crear.

  5. En la sección Detalles del derecho, ingresa los siguientes detalles del derecho:

    • Es el nombre de un derecho. Un nombre de derecho puede tener entre 4 y 63 caracteres. Debe comenzar con una letra minúscula y solo puede contener letras minúsculas, números y guiones.

    • Se pueden otorgar hasta 30 roles en la organización, la carpeta o el proyecto.

      También puedes agregar condiciones de IAM a estos roles de la misma manera en que agregas condiciones a las vinculaciones de roles de políticas de permiso. Sin embargo, en los derechos de Privileged Access Manager, el uso de condiciones que verifican las etiquetas de un recurso se encuentra en versión preliminar.

    • Es la duración máxima de un permiso. La duración máxima que puedes establecer para un derecho es de 7 días.

  6. Haz clic en Siguiente.

  7. En la sección Agregar solicitantes, ingresa hasta 20 principales solicitantes válidos para el derecho.

    Se admiten todos los tipos de principal, excepto allUsers y allAuthenticatedUsers. Para agregar más de 20 identidades, agrégalas a un grupo y, luego, indícalo en el derecho.

  8. Elige si las principales deben proporcionar una justificación para la solicitud de concesión.

  9. Ingresa direcciones de correo electrónico adicionales de los usuarios a los que se les notificará cuando el derecho sea apto para solicitarse.

    Las identidades de Google asociadas con el derecho, como los aprobadores y los solicitantes, reciben notificaciones automáticamente. Sin embargo, si quieres notificar a más personas, puedes agregar sus direcciones de correo electrónico. Esto es especialmente útil si usas identidades de personal en lugar de Cuentas de Google.

  10. Haz clic en Siguiente.

  11. En la sección Agregar aprobadores, realiza una de las siguientes acciones:

    • Para permitir el otorgamiento de roles sin aprobación, selecciona Activar el acceso sin aprobaciones.

    • Para exigir aprobaciones, haz lo siguiente:

      1. Opcional: Para solicitar a los responsables de aprobación que ingresen justificaciones para aprobar solicitudes, selecciona Se requiere una justificación de los responsables de aprobación.
      2. Ingresa los detalles del aprobador de primer nivel:

        • Lista de aprobadores del derecho

          Puedes agregar cualquiera de los siguientes tipos de principales como aprobadores:

          • Cuentas de Google

          • Grupos de Google

          • Dominios de Google Workspace.

          • Identificadores de grupos de trabajadores

          • Identificadores del grupo de cargas de trabajo

          • Cuentas de servicio

            Los identificadores de cuentas de servicio y grupos de identidades para cargas de trabajo solo están disponibles si se permite que las cuentas de servicio aprueben las concesiones para este recurso. Para obtener más información, consulta Cómo configurar Privileged Access Manager.

        • Cantidad de aprobaciones requeridas

          Si agregaste un grupo como aprobador, asegúrate de que la cantidad de aprobaciones requeridas sea menor o igual a la cantidad de principales del grupo. De lo contrario, los permisos permanecerán atascados de forma perpetua en el estado approval awaited.

        • Direcciones de correo electrónico de los responsables de aprobación para la notificación

      3. Opcional: Agrega los detalles del responsable de aprobación de segundo nivel:

        • Lista de aprobadores del derecho

          Puedes agregar cualquiera de los siguientes tipos de principales como aprobadores:

          • Cuentas de Google

          • Grupos de Google

          • Dominios de Google Workspace.

          • Identificadores de grupos de trabajadores

          • Identificadores del grupo de cargas de trabajo

          • Cuentas de servicio

            Los identificadores de cuentas de servicio y grupos de identidades para cargas de trabajo solo están disponibles si se permite que las cuentas de servicio aprueben las concesiones para este recurso. Para obtener más información, consulta Cómo configurar Privileged Access Manager.

        • Cantidad de aprobaciones requeridas

          Si agregaste un grupo como aprobador, asegúrate de que la cantidad de aprobaciones requeridas sea menor o igual a la cantidad de principales del grupo. De lo contrario, los permisos permanecerán atascados de forma perpetua en el estado approval awaited.

        • Direcciones de correo electrónico de los responsables de aprobación para la notificación

    Puedes agregar hasta 20 principales aprobadores (identidades o grupos) por aprobación. Si quieres agregar más de 20 aprobadores, puedes hacerlo agregándolos a un grupo y, luego, indicando el grupo como aprobador del derecho.

  12. Haz clic en Siguiente.

  13. Haz clic en Crear derecho.

Es posible que los derechos recién creados tarden unos minutos en propagarse y estar listos para usarse.

gcloud

El comando gcloud alpha pam entitlements create crea un derecho a nivel de la organización, la carpeta o el proyecto.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • ENTITLEMENT_ID: Es el ID del derecho que se creará. Un ID debe tener entre 4 y 63 caracteres, y usar los siguientes caracteres: [a-z0-9-]. El primer carácter debe ser una letra
  • RESOURCE_TYPE: Opcional Es el tipo de recurso al que pertenece el derecho. Usa el valor organization, folder o project.
  • RESOURCE_ID: Se usa con RESOURCE_TYPE. Es el ID de la organización, la carpeta o el proyecto Cloud de Confiance para el que deseas administrar los derechos. Los IDs de proyecto son cadenas alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
  • RESOURCE_MANAGER_RESOURCE_TYPE: Puede ser Organization, Folder o Project, según el alcance.
  • ROLE: Son los roles que se asignarán cuando se otorgue un derecho.
  • MAXIMUM_GRANT_DURATION: Es la duración máxima para la que se puede solicitar un permiso, en segundos. El rango admitido es de entre 30 minutos (1,800) y 168 horas (604,800).
  • REQUESTING_MEMBER: Son las principales que pueden solicitar que se otorgue el derecho. Se admiten todos los tipos de principal, excepto allUsers y allAuthenticatedUsers.

  • APPROVING_MEMBER: Son las principales que pueden aprobar la solicitud de derechos. Los tipos de principal válidos son los siguientes:

    • Usuario
    • Grupo
    • Dominio
    • Identificadores de grupos de trabajadores
    • Identificadores del grupo de cargas de trabajo

      Esta opción solo está disponible si se permite que las cuentas de servicio aprueben solicitudes de derechos para este recurso. Para obtener más información, consulta Cómo configurar Privileged Access Manager.

    • Cuentas de servicio

      Esta opción solo está disponible si se permite que las cuentas de servicio aprueben solicitudes de derechos para este recurso. Para obtener más información, consulta Cómo configurar Privileged Access Manager.

  • APPROVALS_NEEDED: Es la cantidad de aprobadores necesarios para aprobar la solicitud de derechos.

    Si agregaste un grupo como aprobador, asegúrate de que la cantidad de aprobaciones requeridas sea menor o igual a la cantidad de principales del grupo. De lo contrario, los permisos permanecerán atascados de forma perpetua en el estado approval awaited.

  • APPROVER_EMAIL_ADDRESSES: Opcional Direcciones de correo electrónico adicionales para notificar cuando se solicitó un otorgamiento. Se notifica automáticamente a las identidades de Google asociadas con los aprobadores de la concesión. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
  • ADMIN_EMAIL_ADDRESS: Opcional Direcciones de correo electrónico adicionales para notificar cuando se le otorgue acceso a un solicitante. Se notifica automáticamente a las identidades de Google asociadas con los aprobadores de la concesión. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
  • REQUESTER_EMAIL_ADDRESS: Opcional Direcciones de correo electrónico adicionales para notificar cuando este derecho esté disponible para solicitarlo. Las identidades de Google asociadas con los solicitantes de otorgamiento se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
  • CONDITION_EXPRESSION: Opcional Es la expresión de condición que especifica cuándo la principal puede usar los permisos en el rol. Esta condición solo se aplica cuando el permiso está activo.

Guarda el siguiente código en un archivo llamado entitlement.yaml.

privilegedAccess:
  gcpIamAccess:
    resourceType: cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE
    resource: //cloudresourcemanager.googleapis.com/RESOURCE_ID
    roleBindings:
    - role: ROLE_1
      conditionExpression: CONDITION_EXPRESSION_1
    - role: ROLE_2
      conditionExpression: CONDITION_EXPRESSION_2
maxRequestDuration: MAXIMUM_GRANT_DURATION
eligibleUsers:
- principals:
  - REQUESTING_MEMBER_1
  - REQUESTING_MEMBER_2
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: APPROVALS_NEEDED_1
      approverEmailRecipients:
      - APPROVER_EMAIL_ADDRESSES_1
      - APPROVER_EMAIL_ADDRESSES_2
      approvers:
      - principals:
       - APPROVING_MEMBER_1
       - APPROVING_MEMBER_2
    - approvalsNeeded: APPROVALS_NEEDED_2
      approverEmailRecipients:
       - APPROVER_EMAIL_ADDRESSES_3
       - APPROVER_EMAIL_ADDRESSES_4
      approvers:
      - principals:
        - APPROVING_MEMBER_3
        - APPROVING_MEMBER_4
requesterJustificationConfig:
  unstructured: {}
additionalNotificationTargets:
  adminEmailRecipients:
  - ADMIN_EMAIL_ADDRESS_1
  - ADMIN_EMAIL_ADDRESS_2
  requesterEmailRecipients:
  - REQUESTER_EMAIL_ADDRESS_1
  - REQUESTER_EMAIL_ADDRESS_2

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud alpha pam entitlements create \
    ENTITLEMENT_ID \
    --entitlement-file=entitlement.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud alpha pam entitlements create `
    ENTITLEMENT_ID `
    --entitlement-file=entitlement.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud alpha pam entitlements create ^
    ENTITLEMENT_ID ^
    --entitlement-file=entitlement.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Deberías recibir una respuesta similar a la que figura a continuación:

Es posible que los derechos recién creados tarden unos minutos en propagarse y estar listos para usarse.
Create request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/PROJECT_ID/locations/global/operations/OPERATION_ID] to complete...done.
Created entitlement [ENTITLEMENT_ID].
additionalNotificationTargets: {}
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - id: step-1
      approvalsNeeded: 3
      approvers:
      - principals:
        - user:alex@example.com
        - group:dev-team@example.com
    - id: step-2
      approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
  createTime: '2024-04-09T02:39:37.011866832Z'
  eligibleUsers:
  - principals:
    - user:bola@example.com
  etag: 00000000000000000000000000000000000000000000000000000000000=
  maxRequestDuration: 7200s
  name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
  privilegedAccess:
    gcpIamAccess:
      resource: //cloudresourcemanager.googleapis.com/RESOURCE_TYPE/RESOURCE_ID
      resourceType: cloudresourcemanager.googleapis.com/Project
      roleBindings:
      - role: roles/storage.admin
        id: hwarq_1
        conditionExpression: "request.time.getHours() >= 8"
  requesterJustificationConfig:
    unstructured: {}
  state: AVAILABLE

REST

El método createEntitlement de la API de Privileged Access Manager crea un derecho a nivel de la organización, la carpeta o el proyecto.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • SCOPE: La organización, la carpeta o el proyecto en el que se creará el derecho, en el formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Los ID de proyecto son strings alfanuméricas, como my-project. Los IDs de carpeta y organización son numéricos, como 123456789012.
  • ENTITLEMENT_ID: Es el ID del derecho que se creará. Un ID debe tener entre 4 y 63 caracteres, y usar los siguientes caracteres: [a-z0-9-]. El primer carácter debe ser una letra
  • RESOURCE_MANAGER_RESOURCE_TYPE: Puede ser Organization, Folder o Project, según el alcance.
  • ROLE: Son los roles que se asignarán cuando se otorgue un derecho.
  • MAXIMUM_GRANT_DURATION: Es la duración máxima para la que se puede solicitar un permiso, en segundos. El rango admitido es de entre 30 minutos (1,800) y 168 horas (604,800).
  • REQUESTING_MEMBER: Son las principales que pueden solicitar que se otorgue el derecho. Se admiten todos los tipos de principal, excepto allUsers y allAuthenticatedUsers.

  • APPROVING_MEMBER: Son las principales que pueden aprobar la solicitud de derechos. Los tipos de principal válidos son los siguientes:

    • Usuario
    • Grupo
    • Dominio
    • Identificadores de grupos de trabajadores
    • Identificadores del grupo de cargas de trabajo

      Esta opción solo está disponible si se permite que las cuentas de servicio aprueben solicitudes de derechos para este recurso. Para obtener más información, consulta Cómo configurar Privileged Access Manager.

    • Cuentas de servicio

      Esta opción solo está disponible si se permite que las cuentas de servicio aprueben solicitudes de derechos para este recurso. Para obtener más información, consulta Cómo configurar Privileged Access Manager.

  • APPROVALS_NEEDED: Es la cantidad de aprobadores necesarios para aprobar la solicitud de derechos.

    Si agregaste un grupo como aprobador, asegúrate de que la cantidad de aprobaciones requeridas sea menor o igual a la cantidad de principales del grupo. De lo contrario, los permisos permanecerán atascados de forma perpetua en el estado approval awaited.

  • APPROVER_EMAIL_ADDRESSES: Opcional Direcciones de correo electrónico adicionales para notificar cuando se solicitó un otorgamiento. Se notifica automáticamente a las identidades de Google asociadas con los aprobadores de la concesión. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
  • ADMIN_EMAIL_ADDRESS: Opcional Direcciones de correo electrónico adicionales para notificar cuando se le otorgue acceso a un solicitante. Se notifica automáticamente a las identidades de Google asociadas con los aprobadores de la concesión. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
  • REQUESTER_EMAIL_ADDRESS: Opcional Direcciones de correo electrónico adicionales para notificar cuando este derecho esté disponible para solicitarlo. Las identidades de Google asociadas con los solicitantes de otorgamiento se notifican automáticamente. Sin embargo, es posible que desees notificar a un conjunto diferente de direcciones de correo electrónico, en especial si usas la federación de identidades de personal.
  • CONDITION_EXPRESSION: Opcional Es la expresión de condición que especifica cuándo la principal puede usar los permisos en el rol. Esta condición solo se aplica cuando el permiso está activo.

Método HTTP y URL:

POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?entitlementId=ENTITLEMENT_ID

Cuerpo JSON de la solicitud:

{
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE",
      "resource": "//cloudresourcemanager.googleapis.com/SCOPE",
      "roleBindings": [
        {
          "role": "ROLE_1",
          "conditionExpression": "CONDITION_EXPRESSION_1",
        },
        {
          "role": "ROLE_2",
          "conditionExpression": "CONDITION_EXPRESSION_2",
        },
      ]
    }
  },
  "maxRequestDuration": "MAXIMUM_GRANT_DURATION",
  "eligibleUsers": [
    {
      "principals": [
        "REQUESTING_MEMBER_1",
        "REQUESTING_MEMBER_2",
        ...
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "requireApproverJustification": true,
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "APPROVING_MEMBER_1",
                "APPROVING_MEMBER_2",
              ]
            }
          ],
          "approvalsNeeded": APPROVALS_NEEDED_1,
          "approverEmailRecipients": [
            "APPROVER_EMAIL_ADDRESSES_1",
            "APPROVER_EMAIL_ADDRESSES_2",
          ]
        },
        {
          "approvers": [
            {
              "principals": [
                "APPROVING_MEMBER_3",
                "APPROVING_MEMBER_4",
              ]
            }
          ],
          "approvalsNeeded": APPROVALS_NEEDED_2,
          "approverEmailRecipients": [
            "APPROVER_EMAIL_ADDRESSES_3",
            "APPROVER_EMAIL_ADDRESSES_4",
          ]
        }
      ]
    }
  },
  "requesterJustificationConfig": {
    "unstructured": {
    }
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "ADMIN_EMAIL_ADDRESS_1",
      "ADMIN_EMAIL_ADDRESS_2",
    ],
    "requesterEmailRecipients": [
      "REQUESTER_EMAIL_ADDRESS_1",
      "REQUESTER_EMAIL_ADDRESS_2",
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:


{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-05T03:35:14.596739353Z",
    "target": "projects/PROJECT_ID/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

Para verificar el progreso de una operación de creación, puedes enviar una solicitud GET al siguiente extremo:

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID

Envía una solicitud GET al siguiente extremo para enumerar todas las operaciones:

Es posible que los derechos recién creados tarden unos minutos en propagarse y estar listos para usarse.
https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations

Terraform

Puedes usar Terraform para crear derechos. Para obtener más información, consulta google_privileged_access_manager_entitlement en la documentación de Terraform. Es posible que los derechos recién creados tarden unos minutos en propagarse y estar listos para usarse.

Config Connector

Puedes usar Kubernetes Config Connector para crear derechos. Para obtener más información, consulta PrivilegedAccessManagerEntitlement en la documentación de Config Connector. Es posible que los derechos recién creados tarden unos minutos en propagarse y estar listos para usarse.

¿Qué sigue?