En esta página, se explica cómo definir políticas de acceso adaptado al contexto con niveles de acceso.
Un nivel de acceso es un conjunto de atributos asignados a solicitudes en función de su origen. Mediante la información, como el tipo de dispositivo, la dirección IP y la identidad del usuario, puedes designar el nivel de acceso que se otorgará. Por ejemplo, puedes asignar un nivel High_Trust
a las conexiones desde tu red corporativa y un nivel Medium_Trust
a los dispositivos externos que ejecutan sistemas operativos aprobados.
Una política de acceso es un contenedor para todos tus recursos de Access Context Manager, como los niveles de acceso y los perímetros de servicio.
Para obtener más información sobre los niveles de acceso y las políticas de acceso, consulta la descripción general de Access Context Manager.
Limitaciones
Cuando se define un nivel de acceso, se aplican las siguientes limitaciones:
- No puedes usar una dirección IP como atributo para las conexiones de Docker ni direcciones IP privadas cuando te conectas a clústeres privados con
kubectl
o una instancia administrada de Looker. - Looker Studio siempre tiene acceso sin restricciones a las APIs deGoogle Cloud , independientemente de las políticas de Access Context Manager.
- Los atributos del dispositivo no están disponibles para las aplicaciones cliente de OAuth que no son de Google.
- No puedes usar un nivel de acceso con alcance.
Define tu política con niveles de acceso
Console
Crea un nivel de acceso básico:
En la Google Cloud consola, abre la página Access Context Manager.
Si se te solicita, selecciona un proyecto.
En la página Access Context Manager, haz clic en Nuevo.
En el panel Nivel de acceso nuevo, haz lo siguiente:
En el campo Título del nivel de acceso, ingresa un título para el nivel de acceso. El título debe tener un máximo de 50 caracteres y comenzar con una letra, y solo puede contener números, letras, guiones bajos y espacios.
En la sección Condiciones, haz clic en el botón de agregar para el tipo de atributo que deseas agregar y, luego, proporciona los valores que deseas aplicar a ese atributo.
Para obtener una lista completa de los atributos que puedes agregar, consulta los atributos de nivel de acceso.
Por ejemplo, si quieres que el nivel de acceso tenga en cuenta la procedencia de una solicitud en tu red, selecciona el atributo Subredes IP.
Repite este paso para agregar varios atributos a la misma condición. Cuando una condición tiene varios atributos, la solicitud de acceso debe cumplir con todos los atributos.
Una condición de nivel de acceso puede incluir uno de cada tipo de atributo. Algunos atributos incluyen opciones adicionales, como el atributo Política de dispositivo.
Los niveles de acceso admiten condiciones basadas en la identidad del usuario. Sin embargo, para agregar identidades a una condición, debes crear o actualizar el nivel de acceso con gcloud CLI o la API.
Usa la opción Cuando se cumple la condición, se devuelve para especificar si deseas que la condición requiera que una solicitud cumpla con todos los atributos especificados (TRUE) o si la solicitud debe cumplir con cualquier cosa, excepto esos atributos (FALSE).
Por ejemplo, si deseas denegar solicitudes de un rango de direcciones IP determinado de tu red, especifica el rango de direcciones IP con el atributo de Subredes de IP y, luego, establecer la condición en FALSE.
De manera opcional, haz clic en Agregar otra condición para agregar una condición adicional a tu nivel de acceso y, luego, repite los dos pasos anteriores.
Por ejemplo, si deseas denegar el acceso a un subconjunto de direcciones IP dentro de un rango de direcciones IP más amplio, crea una condición nueva, especifica el rango de direcciones IP del subconjunto para atributos Subredes IP, y configura la condición para que muestre FALSE.
Repite este paso para agregar varias condiciones al mismo nivel de acceso.
Si creaste más de una condición, usa Combinar condición con para especificar si deseas que el nivel de acceso requiera que una solicitud cumpla con al menos una de las condiciones (OR) o con todas las condiciones (AND).
Haz clic en Guardar.
gcloud
Si no tienes una política de acceso para tu organización, crea una antes de continuar.
Usa el comando gcloud access-context-manager levels create
para crear un nivel de acceso:
gcloud access-context-manager levels create LEVEL_NAME OPTIONS \ --policy=POLICY
Reemplaza lo siguiente:
LEVEL_NAME: Es el nombre único del nivel de acceso. Debe comenzar con una letra e incluir solo letras, números y guiones bajos. El nombre puede tener un máximo de 50 caracteres.
OPTIONS: Son las opciones obligatorias de la siguiente tabla.
Opciones basic-level-spec
Un archivo YAML que especifica una o más condiciones para el nivel de acceso.
title
Un título corto para el nivel de acceso. El título del nivel de acceso se muestra en la consola de Google Cloud .
combine-function
Determina cómo se combinan las condiciones (opcional).
Valores válidos:
AND
,OR
description
(Opcional) Una descripción con formato largo del nivel de acceso.
POLICY: Es el ID de la política de acceso de tu organización. Si tienes establecida una política predeterminada, este parámetro es opcional.
De manera opcional, puedes incluir cualquiera de las marcas de gcloud.
Archivo YAML de basic-level-spec
Cuando usas gcloud CLI para crear un nivel de acceso, debes proporcionar un archivo YAML para la opción basic-level-spec
. El archivo YAML define una o más condiciones para el nivel de acceso. Las condiciones deben contener al menos un atributo. Cuando una condición contiene más de un atributo, se combinan como una operación AND (todos deben ser verdaderos) o como una operación NAND (ninguno puede ser verdadero), según si el atributo negate
se incluye en la condición.
Para obtener una lista completa de los atributos que puedes incluir en tu archivo YAML, consulta atributos de nivel de acceso.
A fin de obtener más información sobre los niveles de acceso y YAML, consulta el ejemplo de YAML para un nivel de acceso.
Comando de ejemplo
gcloud access-context-manager levels create Device_Trust \
--basic-level-spec=corpdevspec.yaml \
--combine-function=AND \
--description='Access level that conforms to corporate spec.' \
--title='Device_Trust Extended' \
--policy=1521580097614100
API
Si no tienes una política de acceso para tu organización, crea una antes de continuar.
Para crear un nivel de acceso, llama a accessLevels.create
.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY es el ID de la política de acceso de tu organización.
Cuerpo de la solicitud
El cuerpo de la solicitud debe incluir un recurso AccessLevel
que especifique las condiciones que deseas para el nuevo nivel de acceso.
Cada Condition
tiene uno o más atributos que se evalúan como una operación AND (todos deben ser verdaderos) o como una operación NAND (ninguno puede ser verdadero), según si el campo negate
está establecido en true
. La evaluación resultante determina si se cumple la condición.
Cuerpo de la respuesta
Si tiene éxito, el cuerpo de la respuesta de la llamada contendrá un recurso Operation
que proporciona detalles sobre la operación POST
.
Configuraciones de políticas comunes
En los siguientes ejemplos, se abarcan algunas de las formas prácticas en que tu organización podría implementar los niveles de acceso. En estos ejemplos, se supone que tu organización ya tiene una política de acceso.
Limita el acceso en una red corporativa
En este ejemplo, se describe cómo crear una condición de nivel de acceso que permita el acceso solo desde un rango de direcciones IP específico (por ejemplo, los que están dentro de una red corporativa).
Si restringes el rango de direcciones IP a las que se les otorga acceso, puedes dificultar el robo de datos a un atacante que está dentro o fuera de tu organización.
En este ejemplo, supón que deseas crear un nivel de acceso que permita que un grupo de auditores internos accedan al servicio de Cloud Logging para un proyecto llamado sensitive-data. A todos los dispositivos para los auditores se les asignan IP en una subred que varía entre 203.0.113.0 y 203.0.113.127. Sabes que no habrá ningún dispositivo asignado a esa subred que los que usan los auditores.
Si deseas usar un rango de direcciones IP privadas (por ejemplo, 192.168.0.0/16
o 172.16.0.0/12
), consulta Permite el acceso a recursos protegidos desde una dirección IP interna para obtener información adicional y un ejemplo de implementación con los Controles del servicio de VPC.
Console
En la Google Cloud consola, abre Access Context Manager.
Si se te solicita, selecciona un proyecto.
En la parte superior de la página Chrome Enterprise Premium, haz clic en Nuevo.
En el panel Nivel de acceso nuevo, en la sección Condiciones, haz clic en Agregar atributo y, luego, en Subredes IP.
En el cuadro Subredes de IP, selecciona IP pública o IP privada.
Si seleccionas IP pública, ingresa uno o más rangos de IPv4 o IPv6 formateados como bloques CIDR.
En este ejemplo, para limitar el acceso a los auditores, debes ingresar
203.0.113.0/25
en el cuadro Subredes de IP.Si seleccionas IP privada, haz clic en Seleccionar redes de VPC. Puedes especificar redes de VPC con una de las tres opciones disponibles en la lista Opciones de importación.
Opción 1:
Selecciona Busca redes de VPC en tu organización y elige las redes de VPC.
Haz clic en Agregar las redes de VPC seleccionadas.
Haz clic en Seleccionar subredes de IP y elige las subredes.
Haz clic en Agregar subredes de IP.
Opción 2:
Selecciona Ingresa la dirección de la red de VPC de forma manual y, luego, ingresa una o más redes de VPC.
Haz clic en Agregar red de VPC.
Haz clic en Seleccionar subredes de IP y elige las subredes.
Haz clic en Agregar subredes de IP.
Opción 3:
Selecciona Subir archivo CSV (reemplaza las redes existentes).
Si usas un archivo CSV para agregar redes de VPC y subredes a un nivel de acceso, Access Context Manager reemplaza las redes de VPC y las subredes seleccionadas anteriormente.
Haz clic en Explorar y sube el archivo CSV. En el archivo CSV, debes especificar las redes de VPC y las subredes en el siguiente formato:
VPC_NETWORK_NAME_1 | IP_RANGE_1 | IP_RANGE_2 | ... VPC_NETWORK_NAME_2 | . | . | ... . | . | . | ... . | . | . | ...
Haz clic en Import networks.
Con el archivo CSV, Access Context Manager completa los nombres de las redes de VPC y la información de las subredes en los cuadros Dirección de red de VPC y Subredes de IP, respectivamente.
Para obtener información sobre el nombre de la red de VPC y el formato de la dirección IP privada, consulta Usa direcciones IP internas en los niveles de acceso.
Haz clic en Guardar.
gcloud
Crea un archivo YAML para un nivel de acceso que incluya uno o más rangos de IPv4 o IPv6 con formato de bloques CIDR.
En este ejemplo, para limitar el acceso solo a los auditores, debes ingresar lo siguiente en el archivo YAML:
- ipSubnetworks: - 203.0.113.0/25
Si deseas usar una dirección IP privada, debes ingresar la siguiente información en el archivo YAML:
- vpcNetworkSources: - vpcSubnetwork: network: VPC_NETWORK_NAME vpcIpSubnetworks: - IP_RANGE
Reemplaza VPC_NETWORK_NAME y IP_RANGE por los valores que se describen en la sección Usa la dirección IP interna en los niveles de acceso.
Guarda el archivo. En este ejemplo, el archivo se llama
CONDITIONS.yaml
.Crea el nivel de acceso:
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Reemplaza lo siguiente:
NAME: Es el nombre único del nivel de acceso. Debe comenzar con una letra y, además, incluir solo letras, números y guiones bajos.
TITLE: Es un título legible. Debe ser único para la política.
POLICY: Es el ID de la política de acceso de tu organización. Si tienes establecida una política predeterminada, este parámetro es opcional.
Debería ver un resultado similar al siguiente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crea un cuerpo de solicitud para crear un recurso
AccessLevel
que incluya uno o más rangos de IPv4 o IPv6 con formato de bloques CIDR.En este ejemplo, para limitar el acceso solo a los auditores, debes ingresar lo siguiente en el cuerpo de la solicitud:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "ipSubnetworks": [ "203.0.113.0/25" ] } ] } }
Reemplaza lo siguiente:
NAME: Es el nombre único del nivel de acceso. Debe comenzar con una letra y, además, incluir solo letras, números y guiones bajos.
TITLE: Es un título legible. Debe ser único para la política.
Si deseas usar una dirección IP privada, debes ingresar la siguiente información en el cuerpo de la solicitud:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "vpcNetworkSources": [ { "vpcSubnetwork": { "network": VPC_NETWORK_NAME, "vpcIpSubnetworks": [ IP_RANGE ] } } ] } ] } }
Reemplaza VPC_NETWORK_NAME y IP_RANGE por los valores que se describen en la sección Usa la dirección IP interna en los niveles de acceso.
Para crear el nivel de acceso, llama a
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY es el ID de la política de acceso de tu organización.
Después de crear el nivel de acceso, debes aplicarlo con una vinculación de acceso para que se aplique.
Limita el acceso por atributos de dispositivo
En este ejemplo, se describe cómo crear un nivel de acceso que otorgue acceso solo a dispositivos que cumplan con un conjunto específico de requisitos, como una versión determinada del sistema operativo (SO).
Se proporciona información sobre los dispositivos a Chrome Enterprise Premium a través de la verificación de extremos. Puedes verificar los siguientes criterios para determinar si deseas otorgar acceso:
- El bloqueo de pantalla está habilitado
- La encriptación de almacenamiento está habilitada
- El dispositivo ejecuta una versión y un tipo de sistema operativo especificados
Para este ejemplo, supongamos que tu organización solo usa máquinas que tienen instalado ChromeOS o Windows. Para agregar una capa de seguridad, debes crear un nivel de acceso que impida el acceso a cualquier persona que use otros sistemas operativos. Además, para administrar el riesgo, debes asegurarte de que solo ciertas versiones de los SO puedan acceder.
Console
En la Google Cloud consola, abre la página de Access Context Manager.
Si se te solicita, selecciona un proyecto.
En la parte superior de la página Chrome Enterprise Premium, haz clic en Nuevo.
En el panel Nuevo nivel de acceso, en la sección Condiciones, haz clic en Agregar atributo y, luego, en Política de dispositivo.
Agrega los atributos de la política de dispositivo:
Haz clic en Agrega una política de SO y, luego, en Política de Chrome OS.
En el cuadro Versión mínima, ingresa la versión mínima de ChromeOS que deseas permitir.
Repite los pasos 1 y 2 para la Política del SO Windows.
Haga clic en Save.
gcloud
Crea un archivo YAML para un nivel de acceso que incluya una política de dispositivo con restricciones del SO.
En este ejemplo, para permitir solo dispositivos con una versión mínima aceptable de ChromeOS y Windows, deberías ingresar lo siguiente en el archivo YAML:
- devicePolicy: osConstraints: - osType: DESKTOP_CHROME_OS minimumVersion: 11316.165.0 - osType: DESKTOP_WINDOWS minimumVersion: 10.0.1809
Guarda el archivo. En este ejemplo, el archivo se llama
CONDITIONS.yaml
.Crea el nivel de acceso:
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Reemplaza lo siguiente:
NAME: Es el nombre único del nivel de acceso. Debe comenzar con una letra y, además, incluir solo letras, números y guiones bajos.
TITLE: Es un título legible. Debe ser único para la política.
POLICY: Es el ID de la política de acceso de tu organización. Si tienes establecida una política predeterminada, este parámetro es opcional.
Debería ver un resultado similar al siguiente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
Crea un cuerpo de solicitud para crear un recurso
AccessLevel
que incluya una política de dispositivo con restricciones de SO.En este ejemplo, para permitir solo dispositivos con una versión mínima aceptable de ChromeOS y Windows, debes escribir lo siguiente en el cuerpo de la solicitud:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "devicePolicy": { "osConstraints": [ { "osType": "DESKTOP_CHROME_OS", "minimumVersion": "11316.165.0" }, { "osType": "DESKTOP_WINDOWS", "minimumVersion": "10.0.1809" } ] { } ] } }
Reemplaza lo siguiente:
NAME: Es el nombre único del nivel de acceso. Debe comenzar con una letra y, además, incluir solo letras, números y guiones bajos.
TITLE: Es un título legible. Debe ser único para la política.
Para crear el nivel de acceso, llama a
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY es el ID de la política de acceso de tu organización.
Después de crear el nivel de acceso, debes aplicarlo con una vinculación de acceso para que se aplique.
Limita el acceso a dispositivos corporativos de confianza con certificados válidos
Puedes usar el acceso basado en certificados (CBA) para exigir certificados X.509 verificados para acceder a los recursos de Google Cloud. La credencial adicional proporciona una señal más sólida de identidad del dispositivo y ayuda a proteger a tu organización contra el robo o la pérdida accidental de credenciales, ya que requiere que estén presentes tanto las credenciales del usuario como el certificado de dispositivo original antes de otorgar acceso.
Antes de continuar, asegúrate de que la extensión de Chrome de Endpoint Verification y la app auxiliar de Endpoint Verification estén implementadas en todos los dispositivos que requieran acceso a los recursos deGoogle Cloud . Estos se convierten en dispositivos de confianza a los que puedes otorgar acceso. Consulta Implementa la Verificación de extremos para usarla con el acceso basado en certificados para obtener más detalles.
Para crear una política que requiera acceso basado en certificados, debes tener un nivel de acceso con una especificación de nivel de acceso personalizada.
Console
En la Google Cloud consola, abre la página Access Context Manager.
Si se te solicita, selecciona un proyecto.
Haz clic en Crear nivel de acceso.
En el panel Nuevo nivel de acceso, selecciona Modo avanzado. Debes tener una licencia de Chrome Enterprise Premium para usar este modo.
En la sección Condiciones, ingresa la siguiente expresión en el cuadro Expresión CEL.
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
Haz clic en Guardar.
gcloud
Crea un archivo YAML para un nivel de acceso que incluya la aplicación de certificados.
expression: "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE"
Guarda el archivo. En este ejemplo, el archivo se llama
CONDITIONS.yaml
.Crea el nivel de acceso:
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
Reemplaza lo siguiente:
NAME: Es el nombre único del nivel de acceso. El nombre debe comenzar con una letra y solo puede incluir letras, números y guiones bajos.
TITLE: Es un título legible. Debe ser único para la política.
POLICY: Es el ID de la política de acceso de tu organización. Si tienes establecida una política predeterminada, este parámetro es opcional.
Debería ver un resultado similar al siguiente:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1234] to complete...done. Created level NAME.
API
Crea un archivo de cuerpo de solicitud para un nivel de acceso que incluya una política de dispositivo con restricciones de SO.
{ "name": "require_certificate", "title": "Certificate-Based Access", "description": "An example certificate-based access level.", "custom": { "expr": { "expression": "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE", "title": "Require a valid certificate", "description": "Permits requests from a device with a valid mTLS certificate." } } }
Para crear el nivel de acceso, llama a
accessLevels.create
.POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY es el ID de la política de acceso de tu organización.
Después de crear el nivel de acceso, debes aplicarlo con una vinculación de acceso para que se aplique.