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 de entornos de ejecución de Lakehouse.
El catálogo de tiempo 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
consola deGoogle Cloud o la CLI degcloud para obtener y configurar estas políticas de
IAM.
Antes de comenzar
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
-
Habilita la API de BigLake si aún no está habilitada.
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 de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles. - Instala y, luego, inicializa Google Cloud CLI.
- 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, espacios de nombres y tablas de Iceberg, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Todo:
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 a través de 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 obteniendo y configurando 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 del 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 pertinentes
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 ETags: Incluye siempre la
etagde una llamadaget-iam-policyreciente en 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 realizar un seguimiento de los cambios en las políticas de IAM.
- Control de versiones: Almacena tus archivos de políticas 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 las ACL 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 comando gcloud biglake iceberg catalogs
get-iam-policy.
Para obtener la política de IAM, ejecuta el siguiente comando:
gcloud 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 ID del proyecto de Google Cloud.
El resultado del comando genera la política de IAM en formato YAML, que muestra las vinculaciones de roles y los miembros actuales.
Configura la política de IAM
Para actualizar la política de IAM en un catálogo de Lakehouse para Iceberg, usa el comando gcloud biglake iceberg catalogs 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 un
etag. El valoretagproporciona un control de simultaneidad optimista para evitar que se reemplacen los cambios. Para obtener eletagactual, primero ejecuta 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 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 al archivo de política local.PROJECT_ID: Es el ID del proyecto de Google Cloud .
Aplica roles de LCA a los espacios de nombres
En la siguiente sección, se muestra cómo aplicar las ACL a los espacios de nombres.
La consola de Google Cloud no muestra ni administra las políticas de IAM heredadas.
Console
En la consola de Google Cloud , abre la página 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 cuadro de diálogo Permisos de uso compartido.
Haz clic en Agregar principal.
En el campo Principales nuevas, ingresa la cuenta de principal a la que deseas asignar roles.
En Selecciona un rol, elige un rol para asignarlo a la cuenta de la 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 comando gcloud biglake iceberg namespaces
get-iam-policy.
Para obtener la política de IAM, ejecuta el siguiente comando:
gcloud 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 ID del proyecto de Google Cloud.
El resultado del comando genera la política de IAM en formato YAML, que muestra las vinculaciones de roles y los miembros 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 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 un
etag. El valoretagproporciona un control de simultaneidad optimista para evitar que se reemplacen los cambios. Para obtener eletagactual, primero ejecuta 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 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 al 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 proyecto de Google Cloud .
Aplica roles de ACL a las tablas
En la siguiente sección, se muestra cómo aplicar las LCA a las tablas.
La consola de Google Cloud no muestra ni administra las políticas de IAM heredadas.
Console
En la consola de Google Cloud , abre la página 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 cuadro de diálogo Permisos de uso compartido.
Haz clic en Agregar principal.
En el campo Principales nuevas, ingresa la cuenta de principal a la que deseas asignar roles.
En Selecciona un rol, elige un rol para asignarlo a la cuenta de la 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 comando gcloud biglake iceberg tables
get-iam-policy.
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: 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 ID del proyecto de Google Cloud.
El resultado del comando genera la política de IAM en formato YAML, que muestra las vinculaciones de roles y los miembros 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 un
etag. El valoretagproporciona un control de simultaneidad optimista para evitar que se reemplacen los cambios. Para obtener eletagactual, primero ejecuta 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 al 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 proyecto de Google Cloud .
¿Qué sigue?
- Obtén más información sobre IAM.
- Consulta la lista completa de roles y permisos de IAM de Lakehouse.
- Obtén más información sobre los conceptos de Lakehouse.