Roles de IAM para funciones de tareas relacionadas con la facturación

En este artículo se muestra cómo configurar permisos de Cloud Identity and Access Management (Cloud IAM) en un conjunto de ejemplos de casos de facturación. En función del caso, te aconsejamos sobre qué roles de Cloud IAM debes asignar a cada función relacionada con la facturación que se desempeñe en la empresa. Estos ejemplos están dirigidos especialmente a los administradores de facturación y a aquellos empleados que gestionan estas tareas dentro de una organización.

En este documento no se explican los roles y permisos de facturación de forma exhaustiva. Si necesitas una descripción detallada de los roles y permisos de la API Billing, consulta el artículo Control del acceso de la API Cloud Billing.

Configuración de permisos de facturación en una empresa pequeña

En este caso de ejemplo, una empresa pequeña quiere configurar y usar cuentas de facturación de Google. La organización dispone de un equipo de ingenieros que desarrolla y mantiene sus aplicaciones, pero ninguno gestiona su facturación. Por motivos de cumplimiento, aunque el director de la oficina es responsable de que los pagos y las facturas coincidan, no tiene permiso para acceder a los recursos de Cloud Platform en los proyectos. Por su parte, la directora ejecutiva mantiene y gestiona la información de tarjetas de crédito.

En la tabla que se incluye más adelante, se explican los roles de facturación de Cloud IAM que puede asignar el administrador de la organización (la directora ejecutiva, en este caso) al resto de los miembros ficticios de la empresa, así como el nivel de recurso correspondiente.

Rol Administrador de la organización Este rol proporciona al director ejecutivo la capacidad de asignar permisos al director de la oficina.
Recurso Organización
Miembro Director ejecutivo
Rol Administrador de cuenta de facturación Este rol permite que tanto el director de la oficina como el director ejecutivo gestionen los pagos y las facturas sin otorgarles permiso para ver los contenidos del proyecto.
Recurso Organización
Miembros Director de la oficina, director ejecutivo

En este caso, la política de Cloud IAM vinculada al recurso de la organización tendrá un aspecto similar a este:

{
  "bindings": [
  {
    "members": [
      "user:ceo@example.com"
    ],
    "role": "roles/resourcemanager.organizationAdmin"
  },
  {
    "members": [
      "group:finance-admins-group@example.com"
    ],
    "role": "roles/billing.admin"
  }
  ]
}

La práctica recomendada es usar los grupos para gestionar miembros. En el segundo vínculo del ejemplo anterior, se debe añadir al director ejecutivo y al director de la oficina al grupo finance-admins-group. Si en algún momento necesitas modificar quién tiene permiso para realizar la función, puedes ajustar los grupos a los pertenece una persona, sin que sea necesario actualizar la política. De ese modo, ninguna de las dos cuentas de usuario individuales se mostrará en la lista de miembros.

Gestión de presupuestos para equipos de finanzas

En este caso, una organización grande quiere que el equipo de finanzas de cada departamento pueda asignar presupuestos y ver el gasto por equipo dentro de dicho departamento, pero sin tener acceso a los recursos de GCP. Aunque no les importa que los desarrolladores puedan ver el gasto de sus propios proyectos, no quieren que se les proporcione una visión general de todos los costes.

Debes otorgar los roles que se indican en esta tabla al gestor financiero de cada departamento, así como a los desarrolladores:

Rol Administrador de cuenta de facturación Este rol permite que los gestores financieros de cada departamento asignen presupuestos y vean el gasto de las cuentas de facturación de sus departamentos correspondientes, pero no les concede el permiso para ver los contenidos del proyecto.
Recurso Cuenta de facturación
Miembros Gestor financiero de cada departamento
Rol Lector Este rol permite que los desarrolladores vean los gastos de sus propios proyectos.
Recurso Proyecto
Miembros Desarrolladores del proyecto

En este ejemplo, como las políticas de Cloud IAM se vinculan a distintos niveles de la jerarquía, debes realizar dos acciones independientes para asignar los permisos necesarios.

Asignar permisos a la cuenta de facturación:

Para otorgar a un usuario el rol de administrador de cuenta de facturación en dicha cuenta, usa la consola de facturación. Utiliza la cuenta desde la que configuraste la cuenta de facturación para conceder al gestor financiero el rol de administrador de esta.

La política de Cloud IAM que se debe vincular al proyecto tendrá un aspecto similar a este:

{
  "bindings": [
  {
     "role": "roles/viewer",
     "members": [
               "group:developers@example.com"
     ]
  }
  ]
}

Portales de autoservicio para clientes en los que los desarrolladores no pueden ajustar la facturación

En este caso, el equipo central de TI de un cliente proporciona recursos de GCP a sus desarrolladores como parte del portal de autoservicio. A través de dicho portal, estos desarrolladores pueden solicitar acceso a los proyectos de GCP, así como a otros servicios en la nube para los que tengan permiso. El centro de costes del desarrollador paga al equipo central de TI por los recursos de la nube que se consumen.

Dicho equipo debe poder realizar las siguientes acciones:

  • Asociar proyectos a cuentas de facturación.
  • Desactivar la facturación en proyectos.
  • Ver la información de las tarjetas de crédito.

Sin embargo, sus miembros no deben tener los permisos necesarios para ver los contenidos del proyecto.

Por su parte, los desarrolladores deben poder ver los costes reales de los recursos de GCP que se consumen, pero no tener permiso para desactivar la facturación, asociar proyectos a cuentas de facturación ni ver la información de las tarjetas de crédito.

Rol Administrador de cuenta de facturación Este rol otorga permiso al departamento de TI para asociar proyectos a cuentas de facturación, desactivar la facturación de los proyectos y ver la información de las tarjetas de crédito de las cuentas que distribuyen a sus clientes.

No les concede los permisos necesarios para ver el contenido de los proyectos.

Recurso Cuenta de facturación
Miembro Departamento de TI
Rol Usuario de cuenta de facturación Este rol otorga a la cuenta de servicio los permisos necesarios para habilitar la facturación; es decir, asociar cualquiera de los proyectos a la cuenta de facturación de la organización y, en última instancia, permitir que la cuenta de servicio pueda habilitar las API necesarias para la facturación.
Recurso Organización
Miembro Cuenta de servicio que se usa para automatizar la creación de proyectos
Rol Lector Este rol permite que los desarrolladores vean los gastos de sus propios proyectos.
Recurso Proyecto
Miembros Desarrolladores del proyecto

En este ejemplo, como las políticas de Cloud IAM se vinculan a distintos niveles de la jerarquía, se necesitan dos operaciones independientes para asignar las políticas necesarias.

Para otorgar a un usuario el rol de administrador de cuenta de facturación en dicha cuenta, usa la consola de facturación. Utiliza la cuenta desde la que configuraste la cuenta de facturación para conceder al gestor financiero el rol de administrador de esta.

A continuación, usa dos políticas de Cloud IAM independientes, puesto que las vas a vincular en distintos niveles de la jerarquía.

La primera política de Cloud IAM sirve para otorgar el rol de usuario de cuenta de facturación a la cuenta de servicio. Debe vincularse a nivel de organización y tendrá un aspecto similar a este:

{
  "bindings": [
  {
     "role": "roles/billing.user",
     "members": [
       "serviceAccount:my-project-creator@shared-resources-proj.iam.gserviceaccount.com"
     ]
  }
  ]
}

La segunda política de Cloud IAM sirve para conceder a los desarrolladores el rol de lector en el proyecto y debe vincularse en ese mismo nivel:

{
  "bindings": [
  {
     "role": "roles/viewer",
     "members": [
       "group:developers@example.com"
     ]
  }
  ]
}

Creación de proyectos facturados para desarrolladores

Una empresa nativa digital de gran tamaño quiere que todos sus desarrolladores puedan crear proyectos facturados en la cuenta de facturación mensual de la organización, sin asignarles derechos de administrador en esta.

Para que se puedan habilitar otras API además de las predeterminadas en un proyecto, primero debes activar la facturación en el proyecto en cuestión. Por tanto, si un desarrollador crea un proyecto, tendrá que asociarlo a una cuenta de facturación para habilitar las API.

Recurso Proyecto Este rol permite que los desarrolladores puedan llevar a cabo las siguientes acciones:
  • Crear cuentas de facturación.
  • Vincular cuentas de facturación a proyectos.
Rol Creador de cuenta de facturación
Miembros Desarrolladores

En este caso, debes vincular la política de Cloud IAM a nivel de proyecto. Presentará un aspecto similar a este:

{
  "bindings": [
  {
     "role": "roles/billing.creator",
     "members": [
               "group:developers@example.com"
     ]
  }
  ]
}

Suma de los costes

En este caso, una empresa quiere calcular y supervisar el gasto exacto que genera cada equipo, departamento, servicio o proyecto. Por ejemplo, digamos que le interesa hacer un seguimiento del coste que supone hacer un despliegue de prueba al mes.

Para ello, dicha empresa puede hacer lo siguiente:

  • Usar los proyectos para organizar los recursos. El coste se indica por proyecto y los ID de proyecto se incluyen en la exportación de los datos de facturación.
  • Asignar etiquetas a los proyectos que ofrezcan más información sobre los grupos, como environment=test. La exportación de los datos de facturación incluye las etiquetas, lo que permite realizar un desglose más pormenorizado de la información. Sin embargo, como los permisos de las etiquetas del proyecto se otorgan igual que el resto de sus metadatos, el propietario de dicho proyecto puede cambiarlas. Puedes indicar a los empleados qué partes no deben cambiar y, luego, hacer el correspondiente seguimiento mediante registros de auditoría. También tienes la opción de asignarles solo permisos granulares para que no puedan modificarlos.

Aunque los datos se pueden exportar en formato JSON y CSV, lo más recomendable es exportarlos directamente a BigQuery. Para ello, basta con que accedas a la sección de exportación de los datos de facturación en la consola de facturación.

Es obligatorio usar una cuenta de facturación independiente para cada centro de coste si estos deben pagar una factura independiente o si es necesario pagar algunas cargas de trabajo con una moneda distinta. Sin embargo, para usar este método, cada cuenta de facturación debe tener un acuerdo firmado para cada entidad asociada.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cloud Identity and Access Management Documentation