Borderless Lakehouse admite el control de acceso a nivel de catálogo, espacio de nombres y tabla para las tablas de Apache Iceberg en Cloud Storage que usan el catálogo del entorno de ejecución de Lakehouse.
El catálogo del entorno de ejecución de Lakehouse administra los metadatos, mientras que las políticas de Identity and Access Management (IAM) definen los permisos. Puedes usar la
Google Cloud consola o la gcloud CLI para obtener y configurar estas políticas de IAM.
Antes de comenzar
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
-
Habilita la API de BigLake.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol Propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles. - Descarga y, luego, inicializa el SDK de Google Cloud:
- Verifica que tengas un extremo y un espacio de nombres del catálogo de REST de Apache Iceberg existentes.
- Verifica que tengas una tabla de Apache Iceberg existente administrada por Lakehouse dentro del catálogo y el espacio de nombres especificados.
Roles obligatorios
Para obtener los permisos que necesitas para administrar las listas de control de acceso (LCA) de los catálogos, los espacios de nombres y las tablas de Iceberg, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Todos:
Administrador de BigLake (
roles/biglake.admin) en el proyecto
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Cómo funciona
Las políticas de IAM definen qué principales tienen roles y permisos específicos para un recurso. Puedes administrar el acceso a tus recursos si obtienes y configuras estas políticas.
Alcance de los roles de IAM
Puedes otorgar roles de IAM en diferentes niveles de la jerarquía de recursos:
- Nivel de proyecto: Otorga acceso a todos los recursos de Lakehouse en el proyecto.
- Nivel de catálogo: Otorga acceso a los recursos que pertenecen al catálogo especificado.
- Nivel de espacio de nombres: Otorga acceso a los recursos que pertenecen al espacio de nombres especificado.
- Nivel de tabla: Otorga acceso solo a la tabla especificada.
Roles de IAM relevantes
En la siguiente lista, se muestran algunos de los roles de IAM comunes que puedes aplicar a los recursos de Lakehouse. Para obtener una lista completa de los roles disponibles y sus permisos asociados, consulta Roles de IAM de Lakehouse.
roles/biglake.admin: Proporciona acceso completo a todos los recursos de Lakehouse.roles/biglake.editor: Proporciona acceso de lectura y escritura a todos los recursos de Lakehouse.roles/biglake.viewer: Proporciona acceso de solo lectura a todos los recursos de Lakehouse.roles/biglake.metadataViewer: Proporciona acceso de solo lectura a los metadatos de todos los recursos de Lakehouse.
Prácticas recomendadas
- Privilegio mínimo: Otorga solo los permisos necesarios a los usuarios y las cuentas de servicio.
- Usa etiquetas ETag: Siempre incluye la
etagde una llamada reciente aget-iam-policyen tu archivo de política cuando usesset-iam-policypara evitar reemplazos no deseados. - Registros de auditoría: Asegúrate de que los Registros de auditoría de Cloud estén habilitados para hacer un seguimiento de los cambios en las políticas de IAM.
- Control de versiones: Almacena tus archivos de política en un sistema de control de versión.
Aplica roles de LCA a los catálogos
En la siguiente sección, se muestra cómo aplicar LCA a los catálogos.
gcloud
Obtén la política de IAM
Para ver la política de IAM actual en un catálogo de Iceberg de Lakehouse, usa el gcloud alpha biglake iceberg catalogs
get-iam-policy
comando.
Para obtener la política de IAM, ejecuta el siguiente comando:
gcloud alpha biglake iceberg catalogs get-iam-policy CATALOG_NAME \ --project=PROJECT_IDReemplaza lo siguiente:
CATALOG_NAME: Es el nombre del extremo del catálogo de REST de Apache Iceberg.PROJECT_ID: Es el Google Cloud ID del proyecto.
El comando muestra la política de IAM en formato YAML, que muestra las vinculaciones y los miembros de roles actuales.
Configura la política de IAM
Para actualizar la política de IAM en un catálogo de Iceberg
de Lakehouse, usa el gcloud alpha biglake iceberg catalogs set-iam-policy comando.
Este comando usa un archivo JSON o YAML local que contiene la política que deseas aplicar.
Crea un archivo de política local en formato JSON o YAML. El archivo de política debe contener las vinculaciones y una
etag. El valoretagproporciona un control de simultaneidad optimista para evitar que se reemplacen los cambios. Para obtener laetagactual, ejecuta primero el comandoget-iam-policy.En el siguiente ejemplo, se muestra un archivo de política llamado
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Para configurar la política de IAM, ejecuta el siguiente comando:
gcloud alpha biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \ --project=PROJECT_IDReemplaza lo siguiente:
CATALOG_NAME: Es el nombre del extremo del catálogo de REST de Apache Iceberg.POLICY_FILE: Es la ruta de acceso a tu archivo de política local.PROJECT_ID: Es el ID del Google Cloud proyecto de.
Aplica roles de LCA a los espacios de nombres
En la siguiente sección, se muestra cómo aplicar LCA a los espacios de nombres.
La Google Cloud consola no muestra ni administra las políticas de IAM heredadas.
Console
En la Google Cloud consola, abre la Lakehouse.
Selecciona un catálogo existente o crea uno si no tienes.
En la tabla Detalles del espacio de nombres, selecciona un espacio de nombres y expande las opciones del menú ().
Haz clic en Administrar permisos.
Aparecerá el diálogo Compartir permisos.
Haz clic en Agregar principal.
En el campo Principales nuevas, ingresa la cuenta principal a la que deseas asignar roles.
En Selecciona un rol, elige un rol para asignar a la cuenta principal.
Haz clic en Guardar.
Haz clic en Cerrar.
gcloud
Obtén la política de IAM
Para ver la política de IAM actual en un espacio de nombres de Iceberg de Lakehouse, usa el gcloud alpha biglake iceberg namespaces
get-iam-policy
comando.
Para obtener la política de IAM, ejecuta el siguiente comando:
gcloud alpha biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \ --catalog=CATALOG_NAME \ --project=PROJECT_IDReemplaza lo siguiente:
NAMESPACE_NAME: Es el nombre del espacio de nombres de destino dentro del catálogo.CATALOG_NAME: Es el nombre del extremo del catálogo de REST de Apache Iceberg.PROJECT_ID: Es el Google Cloud ID del proyecto.
El comando muestra la política de IAM en formato YAML, que muestra las vinculaciones y los miembros de roles actuales.
Configura la política de IAM
Para actualizar la política de IAM en un espacio de nombres de Iceberg de Lakehouse, usa el comando gcloud alpha biglake iceberg namespaces set-iam-policy.
Este comando usa un archivo JSON o YAML local que contiene la política que deseas aplicar.
Crea un archivo de política local en formato JSON o YAML. El archivo de política debe contener las vinculaciones y una
etag. El valoretagproporciona un control de simultaneidad optimista para evitar que se reemplacen los cambios. Para obtener laetagactual, ejecuta primero el comandoget-iam-policy.En el siguiente ejemplo, se muestra un archivo de política llamado
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Para configurar la política de IAM, ejecuta el siguiente comando:
gcloud alpha biglake iceberg namespaces set-iam-policy NAMESPACE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --project=PROJECT_IDReemplaza lo siguiente:
NAMESPACE_NAME: Es el nombre del espacio de nombres de destino dentro del catálogo.POLICY_FILE: Es la ruta de acceso a tu archivo de política local.CATALOG_NAME: Es el nombre del extremo del catálogo de REST de Apache Iceberg.PROJECT_ID: Es el ID del Google Cloud proyecto de.
Aplica roles de LCA a las tablas
En la siguiente sección, se muestra cómo aplicar LCA a las tablas.
La Google Cloud consola no muestra ni administra las políticas de IAM heredadas.
Console
En la Google Cloud consola, abre la Lakehouse.
Selecciona un catálogo existente o crea uno si no tienes.
En la tabla Detalles del espacio de nombres, haz clic en el nombre del espacio de nombres que contiene tu tabla.
En la página Detalles de la tabla, selecciona una tabla y expande las opciones del menú ().
Haz clic en Administrar permisos.
Aparecerá el diálogo Compartir permisos.
Haz clic en Agregar principal.
En el campo Principales nuevas, ingresa la cuenta principal a la que deseas asignar roles.
En Selecciona un rol, elige un rol para asignar a la cuenta principal.
Haz clic en Guardar.
Haz clic en Cerrar.
gcloud
Obtén la política de IAM
Para ver la política de IAM actual en una tabla de Iceberg de Lakehouse, usa el gcloud biglake iceberg tables
get-iam-policy
comando.
Para obtener la política de IAM, ejecuta el siguiente comando:
gcloud biglake iceberg tables get-iam-policy TABLE_NAME \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDReemplaza lo siguiente:
TABLE_NAME: Es el nombre de la tabla de Apache Iceberg de destino.CATALOG_NAME: Es el nombre del extremo del catálogo de REST de Apache Iceberg.NAMESPACE_NAME: Es el nombre del espacio de nombres dentro del catálogo.PROJECT_ID: Es el Google Cloud ID del proyecto.
El comando muestra la política de IAM en formato YAML, que muestra las vinculaciones y los miembros de roles actuales.
Configura la política de IAM
Para actualizar la política de IAM en una tabla de Apache Iceberg administrada por Lakehouse, usa el comando gcloud biglake iceberg tables set-iam-policy.
Este comando usa un archivo JSON o YAML local que contiene la política que deseas aplicar.
Crea un archivo de política local en formato JSON o YAML. El archivo de política debe contener las vinculaciones y una
etag. El valoretagproporciona un control de simultaneidad optimista para evitar que se reemplacen los cambios. Para obtener laetagactual, ejecuta primero el comandoget-iam-policy.En el siguiente ejemplo, se muestra un archivo de política llamado
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Para configurar la política de IAM, ejecuta el siguiente comando:
gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDReemplaza lo siguiente:
TABLE_NAME: Es el nombre de la tabla de Apache Iceberg de destino.POLICY_FILE: Es la ruta de acceso a tu archivo de política local.CATALOG_NAME: Es el nombre del extremo del catálogo de REST de Apache Iceberg.NAMESPACE_NAME: Es el nombre del espacio de nombres dentro del catálogo.PROJECT_ID: Es el ID del Google Cloud proyecto de.
¿Qué sigue?
- Obtén más información sobre IAM.
- Consulta la lista completa de roles y permisos de IAM de Lakehouse.
- Obtén información sobre los conceptos de Lakehouse.