Crea un perímetro de servicio

En esta página, se describe cómo crear un perímetro de servicio.

Antes de comenzar

Crea un perímetro de servicio

En esta sección, se describe cómo crear un perímetro de servicio, agregar proyectos o redes de VPC al perímetro y proteger los servicios.

Cuando creas un perímetro de servicio, puedes permitir el acceso a los servicios protegidos en el exterior del perímetro y especificar qué servicios son accesibles a otros servicios y usuarios dentro del perímetro. Si lo prefieres, puedes definir esta configuración después de crear un perímetro.

Después de crear un perímetro de servicio o actualizar uno existente, los cambios pueden tardar hasta 30 minutos en propagarse y surtir efecto. Durante este tiempo, el perímetro podría bloquear las solicitudes con el siguiente mensaje de error: Error 403: Request is prohibited by organization's policy.

Console

  1. En el menú de navegación de la consola de Google Cloud, haz clic en Seguridad y, luego, en Controles del servicio de VPC.

    Ir a los Controles del servicio de VPC

  2. Si se te solicita, selecciona tu organización, carpeta o proyecto.

  3. Selecciona una política de acceso existente o crea una nueva. Asegúrate de que el permiso de la política de acceso incluya todos los proyectos y las redes de VPC que deseas agregar al perímetro.

  4. En la página Controles del servicio de VPC, selecciona un modo de aplicación de perímetro. De forma predeterminada, está seleccionado el Modo de aplicación forzosa. Si deseas crear un perímetro de ejecución de prueba, haz clic en Modo de ejecución de prueba.

    Los perímetros de aplicación forzosa evitan el acceso a servicios protegidos de manera activa. Los perímetros de ejecución de prueba registran las infracciones del perímetro como si los servicios estuvieran protegidos, pero no impiden el acceso a esos servicios. Para obtener más información sobre los modos de aplicación forzosa y de ejecución de prueba, lee sobre los perímetros de servicio.

  5. Haz clic en Perímetro nuevo.

  6. En la página Crear un perímetro de servicio, en el campo Título, ingresa un nombre para el perímetro.

    El nombre de un perímetro puede tener una longitud máxima de 50 caracteres, debe comenzar con una letra y solo puede contener letras latín ASCII (az, AZ), números (0-9) o guiones bajos (_ ). El nombre del perímetro distingue entre mayúsculas y minúsculas y debe ser único dentro de la política de acceso.

  7. Opcional: En el campo Descripción, ingresa una descripción para el perímetro.

  8. En Tipo de perímetro, selecciona Normal.

  9. En Modo de aplicación forzosa, selecciona un modo de aplicación forzosa del perímetro. Las opciones disponibles son Ejecución de prueba y Forzada.

  10. Haz clic en Continuar.

  11. Para agregar proyectos o redes de VPC que deseas proteger dentro del perímetro, haz lo siguiente:

    1. Para agregar proyectos al perímetro, haz clic en Agregar proyectos.

      1. En el panel Agregar proyectos, selecciona los proyectos que deseas proteger.

      2. Haz clic en Agregar proyectos seleccionados. Los proyectos agregados aparecen en la sección Proyectos.

    2. Para agregar redes de VPC al perímetro, haz clic en Agregar redes.

      1. En la lista de proyectos, haz clic en el proyecto que contiene las redes de VPC.

      2. En el panel Agregar redes de VPC, selecciona las redes de VPC que deseas proteger.

      3. Haz clic en Agregar las redes seleccionadas. Las redes agregadas aparecen en la sección Redes de VPC.

    3. Haz clic en Continuar.

  12. Para seleccionar los servicios que deseas proteger dentro del perímetro, haz lo siguiente:

    1. En el panel Servicios restringidos, haz clic en Agregar servicios.

    2. En el panel Agregar servicios, selecciona los servicios que deseas proteger.

    3. Haz clic en Agregar servicios seleccionados.

    4. Haz clic en Continuar.

  13. Opcional: Si deseas definir qué servicios son accesibles desde los extremos de red dentro de un perímetro, en el panel Servicios accesibles de VPC, selecciona una de las opciones disponibles:

    • Todos los servicios: Esta opción permite todos los Google Cloud servicios.

    • Sin servicios: Esta opción no permite ninguno de los Google Cloud servicios.

    • Todos los servicios restringidos: Esta opción solo permite los Google Cloud servicios que protegiste en este perímetro.

    • Servicios seleccionados: Esta opción solo permite los Google Cloud servicios que seleccionaste.

      1. Haz clic en Agregar servicios.

      2. En el panel Agregar servicios, selecciona los servicios que deseas permitir.

      3. Haz clic en Agregar servicios seleccionados.

      4. Para incluir, además, todos los servicios restringidos que el perímetro protege a los servicios seleccionados, haz clic en el botón de activación Incluir todos los servicios restringidos para ponerlo en la posición de activado.

      5. Haz clic en Continuar.

    También puedes agregar servicios accesibles después de crear un perímetro.

    Para obtener más información, consulta Servicios de VPC accesibles.

  14. Para permitir el acceso a recursos protegidos desde fuera del perímetro mediante niveles de acceso, haz lo siguiente (opcional):

    1. En el panel Niveles de acceso, haz clic en Agregar niveles de acceso.

      También puedes agregar niveles de acceso después de crear un perímetro.

    2. Selecciona las casillas de verificación que correspondan a los niveles de acceso que deseas aplicar al perímetro.

    3. Haz clic en Agregar los niveles de acceso seleccionados.

    4. Haz clic en Continuar.

  15. Para permitir el acceso a los recursos dentro de un perímetro desde clientes de la API fuera del perímetro, haz lo siguiente:

    1. En el panel Reglas de entrada, haz clic en Agregar una regla de entrada.

    2. En el campo Título, ingresa un título para la regla de entrada.

    3. En la sección De, especifica las fuentes fuera del perímetro que requieren acceso. Puedes especificar proyectos, niveles de acceso y redes de VPC como fuentes.

    4. En la sección To, especifica los recursos dentro del perímetro a los que pueden acceder las fuentes.

    5. Haz clic en Continuar.

    Para obtener la lista de atributos de reglas de entrada, consulta la Referencia de reglas de entrada.

  16. Para permitir el acceso que de un cliente de API o recursos dentro del perímetro a recursos fuera de un perímetro, haz lo siguiente:

    1. En el panel Reglas de salida, haz clic en Agregar una regla de salida.

    2. En el campo Título, ingresa un título para la regla de salida.

    3. En la sección De, especifica las fuentes dentro del perímetro que requieren acceso.

    4. En la sección To, especifica los recursos fuera del perímetro a los que pueden acceder las fuentes.

    Para obtener la lista de atributos de reglas de salida, consulta Referencia de reglas de salida.

  17. Haz clic en Crear.

gcloud

Para crear un perímetro nuevo en modo de aplicación forzosa, usa el comando gcloud access-context-manager perimeters create.

gcloud access-context-manager perimeters create NAME \
  --title=TITLE \
  --resources=RESOURCES \
  --restricted-services=RESTRICTED-SERVICES \
  --ingress-policies=INGRESS-FILENAME.yaml \
  --egress-policies=EGRESS-FILENAME.yaml \
  [--access-levels=LEVELS] \
  [--enable-vpc-accessible-services] \
  [--vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

Para crear un perímetro nuevo en modo de ejecución de prueba, usa el comando gcloud access-context-manager perimeters dry-run create.

gcloud access-context-manager perimeters dry-run create NAME \
  --perimeter-title=TITLE \
  --perimeter-type=TYPE \
  --perimeter-resources=RESOURCES \
  --perimeter-restricted-services=RESTRICTED-SERVICES \
  --perimeter-ingress-policies=INGRESS-FILENAME.yaml \
  --perimeter-egress-policies=EGRESS-FILENAME.yaml \
  [--perimeter-access-levels=LEVELS] \
  [--perimeter-enable-vpc-accessible-services] \
  [--perimeter-vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

Reemplaza lo siguiente:

  • NAME es el nombre del perímetro.

    El nombre de un perímetro puede tener una longitud máxima de 50 caracteres, debe comenzar con una letra y solo puede contener letras latín ASCII (az, AZ), números (0-9) o guiones bajos (_ ). El nombre del perímetro distingue entre mayúsculas y minúsculas y debe ser único dentro de la política de acceso.

  • TITLE es el título legible del perímetro.

  • TYPE es el tipo de perímetro. Por ejemplo, un perímetro “normal” o uno de “puente”.

  • RESOURCES es una lista separada por comas de uno o más números de proyectos o nombres de redes de VPC. Por ejemplo: projects/12345 o //compute.googleapis.com/projects/my-project/global/networks/vpc1. Solo se permiten proyectos y redes de VPC. Formato del proyecto: projects/project_number. Formato de VPC: //compute.googleapis.com/projects/project-id/global/networks/network_name. Si especificas proyectos, solo se admiten los números de proyecto. No puedes usar el nombre o ID del proyecto.

  • RESTRICTED-SERVICES es una lista separada por comas de uno o más servicios. Por ejemplo: storage.googleapis.com o storage.googleapis.com,bigquery.googleapis.com.

  • INGRESS-FILENAME es un archivo JSON o YAML que contiene los valores de los atributos de origen, identidad, proyecto y servicio. Para obtener la lista de atributos de reglas de entrada, consulta la Referencia de reglas de entrada.

  • EGRESS-FILENAME es un archivo JSON o YAML que contiene los valores de atributos de identidad, proyecto y servicio. Para obtener la lista de los atributos de reglas de salida, consulta Referencia de reglas de salida.

  • POLICY_NAME es el nombre numérico de la política de acceso de tu organización. Por ejemplo, 330193482019. Solo debes incluir el nombre de la política si no configuraste una política de acceso predeterminada.

Opciones adicionales:

  • --access-levels o --perimeter-access-levels solo es necesario si deseas agregar niveles de acceso cuando creas el perímetro. LEVELS es una lista separada por comas de uno o más niveles de acceso que deseas aplicar al perímetro de servicio.

    También puedes agregar niveles de acceso después de crear el perímetro.

  • --enable-vpc-accessible-services y --vpc-allowed-services o --perimeter-enable-vpc-accessible-services y --perimeter-vpc-allowed-services solo son obligatorios si deseas agregar servicios de VPC accesibles cuando creas el perímetro. ACCESSIBLE-SERVICES es una lista separada por comas de uno o más servicios a los que deseas permitir que las redes dentro del perímetro tengan acceso. Se evitará el acceso a cualquier servicio que no esté incluido en esta lista.

    Solo puedes hacer que un servicio sea accesible si también lo proteges cuando configuras el perímetro.

    A fin de incluir todos los servicios protegidos por un perímetro con rapidez, especifica RESTRICTED-SERVICES en la lista para ACCESSIBLE-SERVICES. Por ejemplo, --perimeter-vpc-allowed-services=RESTRICTED-SERVICES.

    También puedes definir servicios de VPC accesibles después de crear el perímetro.

Por ejemplo, el siguiente comando crea un perímetro de modo de ejecución de prueba nuevo llamado ProdPerimeter que incluye proyectos example-project y example-project2, y restringe las API de Cloud Storage y de BigQuery.

gcloud access-context-manager perimeters \
  dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \
  --perimeter-type="regular" \
  --perimeter-resources=projects/12345,projects/67890 \
  --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --perimeter-ingress-policies=ingress.yaml \
  --perimeter-egress-policies=egress.yaml \
  --policy=330193482019

API

Para crear un perímetro de servicio, llama a accessPolicies.servicePerimeters.create.

 POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

Donde:

  • POLICY_NAME es el nombre numérico de la política de acceso de tu organización. Por ejemplo, 330193482019.

Cuerpo de la solicitud

El cuerpo de la solicitud debe incluir un recurso ServicePerimeter que defina el perímetro de servicio.

Para el recurso ServicePerimeter, especifica PERIMETER_TYPE_REGULAR en perimeterType.

Modo de ejecución de prueba

El perímetro propuesto se debe incluir como spec y useExplicitDryRunSpec configurados como verdadero.

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.

¿Qué sigue?