En esta página, se describe cómo usar roles de Identity and Access Management (IAM) en las reglas de entrada y salida para permitir el acceso a los recursos protegidos por perímetros de servicio.
Los Controles del servicio de VPC usan reglas de entrada y salida para permitir el acceso desde y hacia los recursos y los clientes protegidos por los perímetros de servicio. De manera opcional, puedes restringir tus reglas de entrada y salida con los roles de IAM. Cuando especificas un rol de IAM en una regla, esta solo permite acciones asociadas con los permisos que forman parte del rol de IAM.
Antes de comenzar
Lee sobre las reglas de entrada y salida.
Si deseas usar un rol personalizado en las reglas de entrada y salida, asegúrate de tener los permisos necesarios.
Configura roles de IAM en las reglas de entrada
Console
Cuando actualizas una política de entrada de un perímetro de servicio o estableces una política de entrada durante la creación del perímetro con la consola de Google Cloud, puedes configurar la regla de entrada para usar roles de IAM:
Cuando crees o edites un perímetro en la consola de Google Cloud, selecciona Política de entrada.
En el panel Reglas de entrada, selecciona una regla de entrada existente o haz clic en Agregar una regla de entrada.
En la sección Para de tu política de entrada, selecciona Seleccionar roles de IAM (versión preliminar) en la lista Operaciones o roles de IAM.
Haz clic en Agregar roles de IAM.
En el panel Agregar roles de IAM, selecciona los roles de IAM que deseas permitir.
Para obtener información sobre los servicios y roles compatibles, consulta Productos compatibles.
Haz clic en Agregar los roles de IAM seleccionados.
Haz clic en Listo.
Para obtener información sobre los otros atributos de reglas de entrada, consulta la Referencia de reglas de entrada.
gcloud
Puedes configurar una regla de entrada para usar roles de IAM con un archivo JSON o un archivo YAML. En el siguiente ejemplo, se usa el formato YAML:
- ingressFrom:
identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
*OR*
identities:
- PRINCIPAL_IDENTIFIER
sources:
- resource: RESOURCE
*OR*
- accessLevel: ACCESS_LEVEL
ingressTo:
operations:
- serviceName: SERVICE_NAME
methodSelectors:
- method: METHOD_NAME
*OR*
roles:
- ROLE_NAME
resources:
- projects/PROJECT_NUMBER
Reemplaza ROLE_NAME
por los roles de IAM que definen el permiso de acceso para los servicios especificados en la regla.
Especifica un solo rol o una combinación de roles que incluyan todos los permisos necesarios para acceder a los servicios. Para especificar un rol, usa los formatos de nombre de rol que se mencionan en Componentes de roles, excepto el siguiente formato: projects/PROJECT_ID/roles/IDENTIFIER
.
Para obtener información sobre los servicios y roles compatibles, consulta Productos compatibles.
Para obtener información sobre los otros atributos de reglas de entrada, consulta la Referencia de reglas de entrada.
Después de actualizar una regla de entrada existente para configurar roles de IAM, debes actualizar las políticas de reglas del perímetro de servicio:
gcloud access-context-manager perimeters update PERIMETER_ID --set-ingress-policies=RULE_POLICY.yaml
Reemplaza lo siguiente:
PERIMETER_ID
: El ID del perímetro de servicio que deseas actualizar.RULE_POLICY
: Es la ruta de acceso al archivo de la regla de entrada modificada.
Para obtener más información, consulta Actualiza las políticas de entrada y salida para un perímetro de servicio.
Configura roles de IAM en las reglas de salida
Console
Cuando actualizas una política de salida de un perímetro de servicio o estableces una política de salida durante la creación del perímetro con la consola de Google Cloud, puedes configurar la regla de salida para usar roles de IAM:
Cuando crees o edites un perímetro en la consola de Google Cloud, selecciona Política de salida.
En el panel Reglas de salida, selecciona una regla de salida existente o haz clic en Agregar una regla de salida.
En la sección A de tu política de salida, selecciona Seleccionar roles de IAM (versión preliminar) en la lista Operaciones o roles de IAM.
Haz clic en Agregar roles de IAM.
En el panel Agregar roles de IAM, selecciona los roles de IAM que deseas permitir.
Para obtener información sobre los servicios y roles compatibles, consulta Productos compatibles.
Haz clic en Agregar los roles de IAM seleccionados.
Haz clic en Listo.
Para obtener información sobre los otros atributos de las reglas de salida, consulta Referencia de reglas de salida.
gcloud
Puedes configurar una regla de salida para usar roles de IAM con un archivo JSON o un archivo YAML. En el siguiente ejemplo, se usa el formato YAML:
- egressTo:
operations:
- serviceName: SERVICE_NAME
methodSelectors:
- method: METHOD_NAME
*OR*
roles:
- ROLE_NAME
resources:
- projects/PROJECT_NUMBER
egressFrom:
identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
*OR*
identities:
- PRINCIPAL_IDENTIFIER
sources:
- resource: RESOURCE
*OR*
- accessLevel: ACCESS_LEVEL
sourceRestriction: RESTRICTION_STATUS
Reemplaza ROLE_NAME
por los roles de IAM que definen el permiso de acceso para los servicios especificados en la regla.
Especifica un solo rol o una combinación de roles que incluyan todos los permisos necesarios para acceder a los servicios. Para especificar un rol, usa los formatos de nombre de rol que se mencionan en Componentes de roles, excepto el siguiente formato: projects/PROJECT_ID/roles/IDENTIFIER
.
Para obtener información sobre los servicios y roles compatibles, consulta Productos compatibles.
Para obtener información sobre los otros atributos de reglas de salida, consulta Referencia de reglas de salida.
Después de actualizar una regla de salida existente para configurar roles de IAM, debes actualizar las políticas de reglas del perímetro de servicio:
gcloud access-context-manager perimeters update PERIMETER_ID --set-egress-policies=RULE_POLICY.yaml
Reemplaza lo siguiente:
PERIMETER_ID
: El ID del perímetro de servicio que deseas actualizar.RULE_POLICY
: Es la ruta de acceso del archivo de la regla de salida modificado.
Para obtener más información, consulta Actualiza las políticas de entrada y salida para un perímetro de servicio.
Productos compatibles
Puedes usar los roles de IAM de los siguientes Google Cloud servicios en las reglas de entrada y salida:
Producto | Limitaciones |
---|---|
Artifact Registryartifactregistry.googleapis.com |
|
BigQuerybigquery.googleapis.com |
|
Servicio de transferencia de datos de BigQuerybigquerydatatransfer.googleapis.com |
|
Bigtablebigtable.googleapis.com |
|
Autorización binariabinaryauthorization.googleapis.com |
|
Cloud Composercomposer.googleapis.com |
|
Cloud Key Management Servicecloudkms.googleapis.com |
|
Cloud Logginglogging.googleapis.com |
|
Cloud Monitoringmonitoring.googleapis.com |
|
Cloud Runrun.googleapis.com |
|
Funciones de Cloud Runcloudfunctions.googleapis.com |
|
Cloud SQLsqladmin.googleapis.com |
|
Cloud Storagestorage.googleapis.com |
|
Compute Enginecompute.googleapis.com |
|
Dataflowdataflow.googleapis.com |
|
Dataprocdataproc.googleapis.com |
|
Google Kubernetes Enginecontainer.googleapis.com |
|
Administración de identidades y accesosiam.googleapis.com |
|
Pub/Subpubsub.googleapis.com |
|
Administrador de recursoscloudresourcemanager.googleapis.com |
|
Secret Managersecretmanager.googleapis.com |
|
Spannerspanner.googleapis.com |
|
Para obtener la lista de roles de IAM predefinidos de estos servicios que puedes usar en las reglas de entrada y salida, consulta Roles predefinidos.
Sin embargo, hay algunos roles de IAM en estos servicios que son parcialmente compatibles o no para su uso en las reglas de entrada y salida, porque no se admiten algunos o todos los permisos subyacentes:
El uso de un rol de IAM parcialmente compatible en una regla de entrada o salida hace que la regla no sea eficaz para las solicitudes o acciones específicas de los permisos subyacentes no compatibles.
Para obtener la lista de roles parcialmente compatibles y los permisos no compatibles asociados, consulta Roles de IAM parcialmente compatibles.
El uso de un rol de IAM no compatible en una regla de entrada o salida hace que la regla sea ineficaz.
Para obtener la lista de roles no compatibles, consulta Roles de IAM no compatibles.
Si deseas usar un rol personalizado en las reglas de entrada y salida, asegúrate de que el rol personalizado contenga solo los permisos admitidos que forman parte de los servicios admitidos. Para obtener la lista de permisos que no son compatibles con los servicios compatibles, consulta Roles de IAM parcialmente compatibles y Roles de IAM no compatibles.
No puedes usar los roles personalizados que creaste a nivel del proyecto. En otras palabras, no puedes usar un rol personalizado que tenga el siguiente formato: projects/PROJECT_ID/roles/IDENTIFIER
.
Funciones de IAM parcialmente admitidas
En la siguiente tabla, se enumeran los roles de IAM parcialmente admitidos de servicios específicos:
Producto | Roles parcialmente admitidos | Permisos no admitidos |
---|---|---|
Cloud SQL |
|
|
|
|
|
Cloud Storage |
|
|
Identity and Access Management |
|
|
Resource Manager |
|
|
|
|
|
|
|
|
Spanner |
|
|
Otros roles parcialmente admitidos |
|
|
Roles de IAM no admitidos
En la siguiente tabla, se enumeran los roles de IAM no compatibles de servicios específicos:
Producto | Roles no admitidos |
---|---|
Identity and Access Management |
|
Limitaciones
No puedes usar una regla de entrada o salida basada en roles para permitir que las solicitudes establezcan la política de permisos de IAM de un proyecto en todo el límite del perímetro.
Si tienes problemas para cargar la página de edición de los servicios en la consola de Google Cloud debido a las restricciones de los Controles del servicio de VPC, es posible que el uso de roles de IAM en las reglas de entrada no resuelva el problema. Esta limitación no afecta la página de solo lectura de estos servicios.
Cuando una solicitud involucra varios tipos de recursos de diferentes proyectos, es posible que la regla de entrada o salida que usa roles de IAM no funcione. Por ejemplo, cuando inicias una plantilla de Dataflow que lee texto de Cloud Storage en un proyecto diferente.
Si borras un rol personalizado después de hacer referencia a él en la regla de entrada o salida de un perímetro, este se vuelve no editable.