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

En este artículo se muestra cómo configurar permisos de gestión de identidades y accesos (IAM) en un conjunto de ejemplos de casos de facturación. En función del caso, te aconsejamos sobre qué roles de 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 deTrusted Cloud . 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 Trusted Cloud by S3NS 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 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
Principal: CEO
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
Directores: Director de la oficina, director ejecutivo

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

{
  "bindings": [
    {
      "role": "roles/resourcemanager.organizationAdmin",
      "members": [
        "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/ceo@example.com"
      ]
    },
    {
      "role": "roles/billing.admin",
      "members": [
        "principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/finance-admins-group"
      ]
    }
  ]
}

La práctica recomendada es usar los grupos para gestionar las entidades. 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 permiso. De ese modo, ninguna de las dos cuentas de usuario individuales se mostrará en los enlaces de rol.

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 Trusted Cloud . 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
Directores: Gestor financiero de cada departamento
Rol Lector de cuenta de facturación Este rol permite que los desarrolladores vean los gastos de una cuenta de facturación.
Recurso: Cuenta de facturación
Directores: Desarrolladores del proyecto

En este caso, usa la consola de facturación para conceder el rol de administrador de cuenta de facturación a los gestores financieros en la cuenta de facturación. Además, concede el rol Lector de cuentas de facturación a los desarrolladores en la cuenta de facturación.

Cuando hayas terminado, la política de permisos de la cuenta de facturación será similar a la siguiente:

{
  "bindings": [
    {
      "role": "roles/billing.admin",
      "members": [
        "principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/finance-admins-group"
      ]
    },
    {
      "role": "roles/billing.viewer",
      "members": [
        "principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/developers"
      ]
    }
  ],
  "etag": "BwUjMhCsNvY=",
  "version": 1
}

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 Trusted Cloud recursos a sus desarrolladores como parte del portal de autoservicio. A través de dicho portal, los desarrolladores pueden solicitar acceso a los Trusted Cloud proyectos, 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 Trusted Cloud recursos 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
Principal: 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
Principal: Cuenta de servicio que se usa para automatizar la creación de proyectos
Rol Lector de cuenta de facturación Este rol permite que los desarrolladores vean los gastos de una cuenta de facturación.
Recurso: Cuenta de facturación
Directores: 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 de permiso necesarias.

Para otorgar al departamento de TI el rol de administrador de cuenta de facturación en dicha cuenta, usa la consola de facturación. Además, concede el rol Lector de cuenta de facturación a los desarrolladores en la cuenta de facturación.

A continuación, debes adjuntar una política de permiso a nivel de organización. Esta política permite asignar el rol Usuario de cuenta de facturación a la cuenta de servicio. Es similar a lo siguiente:

{
  "bindings": [
    {
      "role": "roles/billing.user",
      "members": [
        "serviceAccount:my-project-creator@shared-resources-proj.s3ns-system.iam.gserviceaccount.com"
      ]
    }
  ],
  "etag": "BwWKmjvelug=",
  "version": 1
}

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.

Rol Usuario de cuenta de facturación El rol Usuario de cuenta de facturación permite a los desarrolladores asociar la cuenta de facturación a nuevos proyectos de la organización.
Recurso: Organización
Directores: Desarrolladores

En este caso, debes vincular la política de permiso a nivel de organización. Presentará un aspecto similar a este:

{
  "bindings": [
    {
      "role": "roles/billing.user",
      "members": [
        "principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/developers"
      ]
    }
  ],
  "etag": "BwUjMhCsNvY=",
  "version": 1
}

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, Por ejemplo, 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.