Crear un nivel de acceso básico

En esta página, se describe en general cómo crear niveles de acceso básicos. Para crear niveles de acceso personalizados y usar el Modo avanzado en la consola de Google Cloud, consulta Crea un nivel de acceso personalizado.

En esta página, se incluyen implementaciones más específicas de los niveles de acceso. Consulta los siguientes ejemplos:

Antes de comenzar

Crea un nivel de acceso básico

Console

Para crear un nivel de acceso básico, haz lo siguiente:

  1. Abre la página Access Context Manager en la consola de Google Cloud.

    Abrir la página de Access Context Manager

  2. Si se le solicita, selecciona tu organización.

  3. En la parte superior de la página Access Context Manager, haz clic en Nuevo.

  4. En el panel Nivel de acceso nuevo, haz lo siguiente:

    1. 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.

    2. En la sección Condiciones, haz clic en el botón agregar para el tipo de atributo que deseas agregar y, luego, proporciona los valores que quieres 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 Device Policy.

      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.

    3. Usa la opción Cuando se cumpla la condición, se muestre 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.

    4. 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.

    5. 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 (O) o todas las condiciones (Y).

    6. Haz clic en Guardar.

gcloud

Antes de comenzar

Para crear un nivel de acceso con la herramienta de línea de comandos de gcloud, usa el comando gcloud access-context-manager levels create.

gcloud access-context-manager levels create LEVEL_NAME OPTIONS \
    --policy=POLICY

Aquí:

  • LEVEL_NAME es el nombre único para el 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 una política predeterminada establecida, este parámetro es opcional.

De manera opcional, puedes incluir cualquiera de las marcas de gcloud-wide.

archivo YAML de especificaciones básicas

Cuando usas la herramienta de línea de comandos de gcloud 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 (todas deben ser verdaderas) o como una operación NAND (ninguna puede ser verdadera), dependiendo de si se incluye el atributo negate en la condición.

Para obtener una lista completa de los atributos que puedes incluir en tu archivo YAML, consulta la información sobre los 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

Antes de comenzar

Para crear un nivel de acceso, llama a accessLevels.create.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels

Aquí:

  • 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 (ninguna puede ser verdadera) según si el campo negate se establece en true. La evaluación resultante determina si la condición se cumple o no.

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.

Implementaciones de ejemplo

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.

Console

  1. Abre la página Access Context Manager en la consola de Google Cloud.

    Abrir la página de Access Context Manager

  2. Si se le solicita, selecciona tu organización.

  3. En la parte superior de la página Access Context Manager, haz clic en Nuevo.

  4. En el panel Nivel de acceso nuevo, en la sección Condiciones, haz clic en Agregar atributo y, luego, en Subredes IP.

  5. En el cuadro Subredes IP, ingrese uno o más rangos 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.

  6. Haz clic en Guardar.

gcloud

  1. Crea un archivo YAML para un nivel de acceso que incluya uno o más rangos 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
    
  2. Guarda el archivo. En este ejemplo, el archivo se llama CONDITIONS.yaml.

  3. Crea el nivel de acceso:

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY
    

    Aquí:

    • NAME es el nombre único para el 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 una política predeterminada establecida, este parámetro es opcional.

    Debería ver un resultado similar a este:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. 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"
           ]
         }
       ]
     }
    }
    

    Aquí:

    • NAME es el nombre único para el 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.

  2. Para crear el nivel de acceso, llama a accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    Aquí:

    • POLICY es el ID de la política de acceso de tu organización.

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 Access Context Manager mediante Endpoint Verification. 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 Chrome OS 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

  1. Abre la página Access Context Manager en la consola de Google Cloud.

    Abrir la página de Access Context Manager

  2. Si se le solicita, selecciona tu organización.

  3. En la parte superior de la página Access Context Manager, haz clic en Nuevo.

  4. En el panel Nuevo nivel de acceso, en la sección Condiciones, haz clic en Agregar atributo y, luego, en Política de dispositivo.

  5. Agrega los atributos de la política de dispositivo:

    1. Haz clic en Agrega una política de SO y, luego, en Política de Chrome OS.

    2. En el cuadro Versión mínima, ingresa la versión mínima de Chrome OS que deseas permitir.

    3. Repite los pasos 1 y 2 para la Política del SO Windows.

  6. Haz clic en Guardar.

gcloud

  1. Crea un archivo YAML para un nivel de acceso 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 ingresar lo siguiente en el archivo YAML:

    - devicePolicy:
        osConstraints:
          - osType: DESKTOP_CHROME_OS
            minimumVersion: 11316.165.0
          - osType: DESKTOP_WINDOWS
            minimumVersion: 10.0.1809
    
  2. Guarda el archivo. En este ejemplo, el archivo se llama CONDITIONS.yaml.

  3. Crea el nivel de acceso:

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY
    

    Aquí:

    • NAME es el nombre único para el 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 una política predeterminada establecida, este parámetro es opcional.

    Debería ver un resultado similar a este:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. 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 Chrome OS 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"
               }
             ]
           {
         }
       ]
     }
    }
    

    Aquí:

    • NAME es el nombre único para el 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.

  2. Para crear el nivel de acceso, llama a accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    Aquí:

    • POLICY es el ID de la política de acceso de tu organización.

Otorga acceso por usuario o cuenta de servicio

Otorgar acceso basado en la identidad suele ser útil junto con cuentas de servicio, por ejemplo, para habilitar unaCloud Functions a fin de acceder a los datos.

En este ejemplo, se describe cómo otorgar acceso a cuentas de servicio y usuarios específicos, y se incluyen los niveles de acceso existentes para mostrar un ejemplo de niveles de acceso anidados. En este caso, los usuarios especificados se incluyen en este nivel de acceso, sin importar si cumplen con las condiciones especificadas en los niveles de acceso existentes. Este nuevo nivel de acceso podría considerarse como un nivel menos restrictivo que los niveles de acceso existentes.

Console

Por el momento, la consola de Google Cloud no permite agregar principales a los niveles de acceso. Si deseas agregar principales a los niveles de acceso, debes usar la herramienta de línea de comandos de gcloud o la API.

gcloud

  1. Crea un archivo YAML que contenga una condición que enumere las principales a las que deseas proporcionar acceso.

    En este ejemplo, deseas agregar tu administrador de sistema (sysadmin@example.com) y una cuenta de servicio (service@project.iam.gserviceaccount.com).

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
  2. Agrega una condición que enumere los niveles de acceso existentes que deseas incluir en este nivel de acceso.

    En este ejemplo, supongamos que los niveles de acceso se llaman Device_Trust y IP_Trust, y que 247332951433 es el nombre de tu política de acceso.

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
    - requiredAccessLevels:
        - accessPolicies/247332951433/accessLevels/Device_Trust
        - accessPolicies/247332951433/accessLevels/IP_Trust
    
  3. Guarda el archivo. En este ejemplo, el archivo se llama CONDITIONS.yaml.

  4. Crea el nivel de acceso con el comando create.

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --combine-function=OR \
       --policy=POLICY
    

    Aquí:

    • NAME es el nombre único para el 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 una política predeterminada establecida, este parámetro es opcional.

    • combine-function se configura como OR. El valor predeterminado AND requiere que se cumplan todas las condiciones antes de que se otorgue un nivel de acceso. El valor OR otorgará acceso a las principales incluso si no se cumplen otras condiciones.

    Debería ver un resultado similar a este:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. Crea un cuerpo de solicitud para crear un recurso AccessLevel que incluya una condición que enumere las principales a las que deseas proporcionar acceso.

    En este ejemplo, deseas agregar tu administrador de sistema (sysadmin@example.com) y una cuenta de servicio (service@project.iam.gserviceaccount.com).

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         }
       ]
     }
    }
    

    Aquí:

    • NAME es el nombre único para el 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.

  2. Agrega una condición que enumere los niveles de acceso existentes que deseas incluir en este nivel de acceso.

    En este ejemplo, supongamos que los niveles de acceso se llaman Device_Trust y IP_Trust, y que 247332951433 es el nombre de tu política de acceso.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ]
     }
    }
    
  3. Establece combiningFunction en OR.

    El valor predeterminado combiningFunction, AND requiere que se cumplan todas las condiciones antes de que se otorgue un nivel de acceso. Con el valor OR se da acceso a los principales incluso si no se cumplen otras condiciones, como la dirección IP o las heredadas de otros niveles de acceso requeridos.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ],
       "combiningFunction": "OR"
     }
    }
    
  4. Para crear el nivel de acceso, llama a accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
    

    Aquí:

    • POLICY es el ID de la política de acceso de tu organización.