Roles predefinidos de Dataform
En la siguiente tabla, se enumeran los roles predefinidos que te brindan acceso a los recursos de Dataform:
Role | Permissions |
---|---|
Dataform Admin( Full access to all Dataform resources. |
|
Code Creator( Access only to private and shared code resources. The permissions in the Code Creator let you create and list code in Dataform, and access only the code that you created and code that was explicitly shared with you. |
|
Code Editor( Edit access code resources. |
|
Code Owner( Full access to code resources. |
|
Code Viewer( Read-only access to all code resources. |
|
Dataform Editor( Edit access to Workspaces and Read-only access to Repositories. |
|
Dataform Viewer( Read-only access to all Dataform resources. |
|
Roles personalizados de Dataform
Las funciones personalizadas pueden incluir cualquier permiso que especifiques. Puedes crear funciones personalizadas que incluyan permisos para realizar operaciones administrativas específicas, como la creación de lugares de trabajo de desarrollo o de archivos y directorios dentro de un lugar de trabajo de desarrollo. Para crear funciones personalizadas, consulta Crea y administra funciones personalizadas.
Consideraciones de seguridad para los permisos de Dataform
Cualquier usuario que tenga el permiso dataform.repositories.create
puede ejecutar el código en BigQuery mediante la cuenta de servicio predeterminada de
Dataform y todos los permisos otorgados a esa cuenta de servicio. Esto incluye la ejecución
de los flujos de trabajo de SQL de Dataform.
Los permisos dataform.repositories.create
se incluyen en las siguientes funciones de IAM:
- Usuario de BigQuery Studio (
roles/bigquery.studioUser
) - Creador de código (
roles/dataform.codeCreator
) - Editor de código (
roles/dataform.codeEditor
) - Propietario del código (
roles/dataform.codeOwner
) - Usuario de Colab Enterprise (
roles/aiplatform.colabEnterpriseUser
) - Administrador de Dataform (
roles/dataform.admin
)
Para restringir los datos que un usuario o una cuenta de servicio pueden leer o escribir en BigQuery, puedes otorgar permisos de IAM detallados de BigQuery a las tablas o los conjuntos de datos de BigQuery seleccionados. Para obtener más información, consulta Controla el acceso a los conjuntos de datos y Controla el acceso a las tablas y vistas.
Para obtener más información sobre la cuenta de servicio predeterminada de Dataform y las funciones y los permisos que requiere, consulta Otorga el acceso necesario a Dataform.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
Ver roles de Dataform
En la consola de Google Cloud, sigue estos pasos:
Ve a la página IAM y administración > Roles.
En el campo Filtro, selecciona Usado en, escribe
Dataform
y, luego, presiona Intro.Haz clic en uno de los roles de la lista para ver los permisos del rol en el panel derecho.
Por ejemplo, el rol Administrador de Dataform tiene acceso completo a todos los recursos de Dataform.
Para obtener más información sobre cómo otorgar un rol en un proyecto, consulta Cómo otorgar un rol. Puedes otorgar roles predefinidos o personalizados de esta manera.
Controla el acceso a un repositorio individual
Para controlar el acceso a Dataform con permisos detallados,
puedes establecer roles de IAM de Dataform en repositorios
individuales mediante la solicitud repositories.setIamPolicy
de la API de Dataform.
Para establecer roles de IAM de Dataform en un repositorio individual de Dataform, sigue estos pasos:
En la terminal, pasa la solicitud
repositories.setIamPolicy
a la API de Dataform con una política de acceso.En la política, vincula un usuario, un grupo, un dominio o una cuenta de servicio a una función seleccionada en el siguiente formato:
{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "TYPE:IDENTIFIER", ] }, ], } }
Reemplaza lo siguiente:
ROLE
: Es un rol de IAM de Dataform que deseas otorgar en el repositorio.TYPE
:user
,group
,domain
oserviceAccount
IDENTIFIER
: El usuario, grupo, dominio o cuenta de servicio a la que deseas otorgar la función
En la página IAM, asegúrate de que todos los usuarios puedan ver la lista completa de repositorios de Dataform mediante un rol de Dataform con el permiso
dataform.repositories.list
.En IAM, asegúrate de que solo a los usuarios que requieran acceso completo a todos los repositorios de Dataform se les otorgue el rol de administrador de Dataform en todos los repositorios.
El siguiente comando pasa la solicitud repositories.setIamPolicy
a la API de Dataform que otorga el rol de editor de Dataform en el repositorio sales
a un solo usuario:
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.editor", "members": ["user:sasha@examplepetstore.com"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
Otorga acceso público a un repositorio
Puedes otorgar acceso público a un repositorio de Dataform si otorgas
funciones de IAM en el repositorio a la principal
allAuthenticatedUsers
.
Cuando asignas un rol de IAM a la principal allAuthenticatedUsers
,
las cuentas de servicio y todos los usuarios de Internet que se autenticaron con una
Cuenta de Google reciben ese rol. Esto incluye las cuentas que no están conectadas a una cuenta de Google Workspace o a un dominio de Cloud Identity, como cuentas personales de Gmail. Los usuarios que no están autenticados, como los visitantes anónimos, no están incluidos. Para obtener más información, consulta Todos los usuarios autenticados.
Por ejemplo, cuando otorgas el rol de visualizador de Dataform a
allAuthenticatedUsers
en el repositorio sales
, todas las cuentas de servicio y
los usuarios en Internet que se autenticaron con una Cuenta de Google tienen
acceso de solo lectura a todos los recursos de código sales
.
Para otorgar acceso público a un repositorio de Dataform, sigue estos pasos:
En la terminal, pasa la solicitud
repositories.setIamPolicy
a la API de Dataform con una política de acceso.En la política, vincula la principal
allAuthenticatedUsers
a una función seleccionada en el siguiente formato:{ "policy": { "bindings": [ { "role": "roles/ROLE", "members": [ "allAuthenticatedUsers", ] }, ], } }
Reemplaza lo siguiente:
ROLE
: Es un rol de IAM de Dataform que deseas otorgar a todos los usuarios autenticados.
El siguiente comando pasa la solicitud repositories.setIamPolicy
a la API de Dataform
que otorga el rol de visualizador de Dataform en el repositorio sales
a allAuthenticatedUsers
:
curl -H "Content-Type: application/json" -X POST -d '{ "policy": { "bindings": [{ "role": "roles/dataform.viewer", "members": ["allAuthenticatedUsers"]}] }}' "https://dataform.googleapis.com/v1beta1/projects/examplepetstore/locations/us-central1/repositories/sales:setIamPolicy"
Impedir el acceso público a los repositorios
Para asegurarte de que no se otorgue acceso al público en ningún repositorio de
Dataform, puedes restringir la principal allAuthenticatedUsers
en tu proyecto.
Para restringir allAuthenticatedUsers
en tu proyecto, puedes establecer la política iam.allowedPolicyMemberDomains
y quitar allAuthenticatedUsers
de la lista de allowed_values
.
Cuando restringes allAuthenticatedUsers
en la política
iam.allowedPolicyMemberDomains
, la principal allAuthenticatedUsers
no se puede usar en ninguna
política de IAM en el proyecto, lo que impide otorgar acceso público
a todos los recursos, incluidos los repositorios de Dataform.
Si deseas obtener más información sobre la política iam.allowedPolicyMemberDomains
y también instrucciones para configurarla, consulta Restringe identidades por dominio.
Federación de identidades de personal en Dataform
La federación de identidades de personal te permite usar un proveedor de identidad externo (IdP) para autenticar y autorizar a los usuarios en los servicios de Google Cloud con la IAM.
Dataform admite la federación de identidades de personal sin limitaciones conocidas.
¿Qué sigue?
- Para obtener más información sobre IAM, consulta Descripción general de IAM.
- Para obtener más información sobre las funciones y los permisos, consulta Comprende las funciones.
- Para obtener más información sobre cómo administrar el acceso a los recursos, consulta Administra el acceso a los proyectos, las carpetas y las organizaciones.
- Para aprender a otorgar roles de BigQuery a las tablas en Dataform, consulta Controla el acceso a tablas individuales con IAM.
- Para obtener más información sobre los conceptos clave de la federación de identidades de personal, consulta Federación de identidades de personal.