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

En este tema, se muestra cómo configurar los permisos de Identity and Access Management (IAM) para un conjunto de situaciones de facturación de muestra. Se proporciona orientación sobre los roles de IAM que se deben otorgar a los roles funcionales relacionados con la facturación de tu empresa para esas situaciones. Estos ejemplos están dirigidos, sobre todo, a los administradores de facturación y los empleados que administran las tareas de facturación de una organización.

Este documento no explica en detalle los roles y los permisos de facturación. Para obtener una descripción detallada de los roles y los permisos de la API de facturación, lee la página Control del acceso de la API Cloud Billing.

Una empresa pequeña que configura los permisos de facturación

En este caso, una empresa pequeña está intentando configurar y usar las cuentas de facturación de Google. Tiene varios ingenieros que desarrollan y mantienen sus aplicaciones, pero ninguno de ellos administra su facturación. Tienen un gerente de oficina, que es responsable de hacer coincidir los pagos con las facturas, pero a quien no se le permite tener acceso a los recursos de Google Cloud en los proyectos por razones de cumplimiento. El director general también tiene y administra los detalles de las tarjetas de crédito.

En la siguiente tabla, se explican los roles de facturación de IAM que el administrador de la organización (que es el director general en este caso) puede otorgar a las demás personas de la empresa y el nivel de recursos al que otorga los roles.

Rol: Administrador de la organización El rol de administrador de la organización le da al director ejecutivo la capacidad de asignar permisos al gerente de oficina.
Recurso: Organización
Principal: Director general
Rol: Administrador de cuentas de facturación El rol de administrador de la cuenta de facturación permite que el administrador de oficina y el director general administren los pagos y las facturas sin otorgarles permiso para ver el contenido de los proyectos.
Recurso: Organización
Principales: Gerente de oficina, director general

La política de permisos adjunta al recurso de la organización para esta situación tendrá un aspecto similar al siguiente:

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

La práctica recomendada es usar grupos para administrar principales. En el ejemplo anterior, para la segunda vinculación, debes agregar al director general y al gerente de oficina al finance-admins-group. Cuando necesitas modificar quién es capaz de llevar a cabo la función, tan solo debes ajustar la membresía del grupo, sin necesidad de actualizar la política de permisos. Por lo tanto, las dos cuentas de usuario individuales no aparecen en las vinculaciones de roles.

Equipos de finanzas que administran los presupuestos

En este caso, una organización grande desea que el equipo de finanzas de cada división pueda establecer presupuestos y ver la inversión del equipo en la división, pero que no tenga acceso a los recursos de Google Cloud. No les importa si los desarrolladores ven el gasto para sus propios proyectos, pero no se les debe permitir a los desarrolladores tener una visión amplia de los gastos.

Otorga los roles de la siguiente tabla al gerente de finanzas de cada división y a los desarrolladores:

Rol: Administrador de cuentas de facturación Con este rol, se otorga al gerente de finanzas de cada división el permiso para establecer presupuestos y ver los gastos de las cuentas de facturación de sus divisiones, pero no se le otorgan permisos para ver el contenido del proyecto.
Recurso: Cuenta de facturación
Principales: Gerente de finanzas de cada división
Rol: Visualizador de cuentas de facturación El rol de visualizador de cuentas de facturación permite a los desarrolladores ver los gastos de una cuenta de facturación.
Recurso: Cuenta de facturación
Principales: Desarrolladores del proyecto

Para esta situación, usa la consola de facturación a fin de otorgar el rol de administrador de cuentas de facturación a los administradores financieros en la cuenta de facturación. Además, otorga el rol de visualizador de cuentas de facturación a los desarrolladores en la cuenta de facturación.

Cuando hayas terminado, la política de permisos para la cuenta de facturación será similar a la que se muestra a continuación:

{
  "bindings": [
    {
      "role": "roles/billing.admin",
      "members": [
        "group:finance-admins-group@example.com"
      ]
    },
    {
      "role": "roles/billing.viewer",
      "members": [
        "group:developers@example.com"
      ]
    }
  ],
  "etag": "BwUjMhCsNvY=",
  "version": 1
}

Portal de autoservicio para clientes, en el que los desarrolladores no pueden ajustar la facturación

En este caso, el equipo central de TI de un cliente proporciona recursos de Google Cloud a sus desarrolladores como parte de su portal de autoservicio. Los desarrolladores solicitan acceso a los proyectos de Google Cloud y a otros servicios en la nube aprobados a través del portal. El centro de costos del desarrollador paga al equipo central de TI por los recursos en la nube que se consumieron.

El equipo central de TI debe ser capaz de hacer las acciones siguientes:

  • Asociar proyectos a las cuentas de facturación
  • Desactivar la facturación de los proyectos
  • Ver la información de la tarjeta de crédito

No deben tener permisos para ver los contenidos del proyecto.

Los desarrolladores deben poder ver los costos reales de los recursos de Google Cloud que se consumen, pero no deben poder desactivar la facturación, asociar la facturación a proyectos ni ver la información de la tarjeta de crédito.

Rol: Administrador de cuentas de facturación El rol de administrador de la cuenta de facturación otorga al departamento de TI los permisos para asociar proyectos a cuentas de facturación, desactivar la facturación de proyectos y ver la información de la tarjeta de crédito de las cuentas que revenden a sus clientes.

No les da permisos para ver el contenido de los proyectos.

Recurso: Cuenta de facturación
Principal: Departamento de TI
Rol: Usuario de cuenta de facturación El rol de usuario de la cuenta de facturación otorga a la cuenta de servicio los permisos a fin de habilitar la facturación (asociar proyectos a la cuenta de facturación de la organización para todos los proyectos de esta) y, por lo tanto, permitir que la cuenta de servicio habilite las API que requieren que se habilite la facturación.
Recurso: Organización
Principal: Cuenta de servicio que se utiliza para automatizar la creación de proyectos
Rol: Visualizador de cuentas de facturación El rol de visualizador de cuentas de facturación permite a los desarrolladores ver los gastos de una cuenta de facturación.
Recurso: Cuenta de facturación
Principales: Desarrolladores del proyecto

Para esta situación, necesitarás dos operaciones distintas a fin de asignar las políticas de permisos adecuadas, ya que se vinculan en diferentes niveles de la jerarquía.

Usa la consola de facturación para otorgar el rol de administrador de cuentas de facturación al Departamento de TI en la cuenta de facturación. Además, otorga el rol de visualizador de cuentas de facturación a los desarrolladores en la cuenta de facturación.

Luego, debes adjuntar una política de permisos a nivel de la organización. Esta política de permisos otorga el rol Usuario de cuenta de facturación a la cuenta de servicio. Es similar al siguiente:

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

Desarrolladores que crean proyectos facturados

Un nativo digital importante desea permitir a todos sus desarrolladores crear proyectos facturados en la cuenta facturada de su organización sin otorgarles los derechos de administrador de la cuenta de facturación.

Un proyecto debe tener habilitada la facturación para garantizar que se puedan habilitar las API que no se encuentren en la configuración predeterminada. Por lo tanto, si un desarrollador crea un proyecto, debe asociarlo a una cuenta de facturación para habilitar las API.

Rol: Usuario de cuenta de facturación El rol de usuario de la cuenta de facturación permite a los desarrolladores vincular la cuenta de facturación a los proyectos nuevos dentro de la organización.
Recurso: Organización
Principales: Desarrolladores

La política de permisos para esta situación debe adjuntarse a nivel de la organización y será similar a la siguiente:

{
  "bindings": [
    {
      "role": "roles/billing.user",
      "members": [
        "group:developers@example.com"
      ]
    }
  ],
  "etag": "BwUjMhCsNvY=",
  "version": 1
}

Costo total

En esta situación, una empresa desea calcular y realizar un seguimiento de cuánto les cuesta cada equipo, departamento, servicio o proyecto. Por ejemplo, realizar un seguimiento de cuánto les cuesta una implementación de prueba cada mes.

Se puede hacer un seguimiento de esto con las siguientes prácticas:

  • Con proyectos para organizar recursos. El costo se muestra por proyecto y los ID de proyecto se incluyen en la exportación de la facturación.
  • Anotando proyectos con etiquetas que representen información adicional de agrupación. Por ejemplo, environment=test. Las etiquetas se incluyen en la exportación de facturación para que puedas desglosar aún más. Sin embargo, las etiquetas de un proyecto se autorizan de la misma manera que el resto de los metadatos del proyecto, lo que significa que el propietario del proyecto puede cambiar las etiquetas. Puedes educar a tus empleados sobre lo que no se debe cambiar y, luego, supervisar (a través de los registros de auditoría) o puedes otorgarles solo permisos detallados para que no puedan cambiar los metadatos del proyecto.

Puedes exportar a JSON y CSV, pero exportar directamente a BigQuery es la solución que recomendamos. Esto se configura fácilmente desde la sección de exportación de facturación de la consola de facturación.

Si cada centro de costo debe pagar una factura por separado o pagar en una moneda diferente para algunas cargas de trabajo, entonces se requiere una cuenta de facturación por cada centro de costo. Sin embargo, este enfoque requeriría un acuerdo de afiliación firmado para cada cuenta de facturación.