Restringe las cargas de trabajo privilegiadas de GKE en las organizaciones

Puedes usar políticas para controlar qué cargas de trabajo con privilegios se pueden ejecutar en clústeres de Google Kubernetes Engine (GKE) en tu Cloud de Confiance by S3NS organización. En este documento, se muestra cómo usar políticas para definir fuentes de cargas de trabajo aprobadas y aplicar prácticas recomendadas para mejorar tu postura de seguridad.

Este documento está dirigido a los administradores de identidades y cuentas que desean permitir que solo se ejecuten cargas de trabajo con privilegios aprobadas en cualquier lugar de la organización. Ya deberías estar familiarizado con los conceptos de las siguientes páginas:

Cómo funciona el control de admisión de cargas de trabajo con privilegios para las organizaciones

De forma predeterminada, Autopilot de GKE aplica un conjunto de medidas de seguridad para cargas de trabajo. La única forma de ejecutar cargas de trabajo que infringen estas restricciones es instalar listas de entidades permitidas para esas cargas de trabajo. Para instalar una lista de entidades permitidas desde una fuente específica, el clúster debe estar configurado para admitir listas de entidades permitidas de esa fuente.

De forma predeterminada, Cloud de Confiance las organizaciones permiten que los administradores de plataformas configuren clústeres para admitir listas de entidades permitidas de socios de GKE y proyectos de código abierto verificados. Si tu organización tiene requisitos de seguridad para limitar las cargas de trabajo con privilegios a un conjunto explícito conocido de fuentes, puedes usar una política de la organización para modificar el comportamiento predeterminado.

Cuando aplicas una lista de fuentes de listas de entidades permitidas aprobadas para tu organización, carpeta o proyecto, los administradores de plataformas solo pueden especificar esas fuentes cuando crean o actualizan clústeres de Autopilot o Standard. Si se crea o actualiza un clúster con una fuente no aprobada especificada, la operación falla.

Las políticas de la organización que debes configurar dependen de tu caso de uso, de la siguiente manera:

Antes de comenzar

  1. Enable the Resource Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. Si tus equipos tienen listas de entidades permitidas para cargas de trabajo con privilegios que poseen, pídeles que te den las rutas de acceso a esas listas de entidades permitidas en Cloud Storage.

Roles y permisos requeridos

Para obtener los permisos que necesitas a fin de administrar las políticas de la organización, pídele a tu administrador que te otorgue el rol de IAM de administrador de políticas de la organización (roles/orgpolicy.policyAdmin) en la organización, la carpeta o 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.

Configura una política de la organización para las listas de entidades permitidas

Puedes controlar las fuentes aprobadas de las listas de entidades permitidas para una organización, carpeta o proyecto mediante la creación o actualización de una política de la organización basada en la restricción administrada constraints/container.managed.autopilotPrivilegedAdmission. Cuando aplicas esta política de la organización, los administradores de clústeres solo pueden instalar listas de entidades permitidas desde las fuentes que definas en la política.

Además de estos pasos, te recomendamos que apliques una política de la organización que permita que solo se ejecuten clústeres de Autopilot en tu entorno. Cuando no hay clústeres Standard en el entorno, solo se pueden ejecutar las cargas de trabajo con privilegios aprobadas. Para obtener más información, consulta la sección Configura una política de la organización para permitir solo clústeres de Autopilot.

Para configurar una política de la organización para las listas de entidades permitidas de cargas de trabajo con privilegios aprobadas, selecciona una de las siguientes opciones:

Console

  1. En la Cloud de Confiance consola de, accede a la página Políticas de la organización:

    Ir a Políticas de la organización

  2. En la tabla de restricciones, busca la restricción administrada container.managed.autopilotPrivilegedAdmission.

  3. Haz clic en Acciones > Editar política. Se abrirá la página Editar política.

  4. En la sección Fuente de la política, selecciona Anular la política del elemento superior.

  5. En la sección Reglas, haz clic en Agregar una regla.

  6. En la sección Aplicación, selecciona Activada. Aparecerá la sección Parámetros.

  7. Para controlar si se pueden instalar listas de entidades permitidas aprobadas por GKE, sigue estos pasos:

    1. En el parámetro allowAnyGKEPath, haz clic en Editar. Se abrirá el panel Editar valores de parámetros.
    2. En la sección Tipo de valor, selecciona Definido por el usuario.
    3. En la sección Valores definidos por el usuario, selecciona una de las siguientes opciones:

      • Verdadero: los administradores pueden configurar clústeres para ejecutar listas de entidades permitidas desde cualquier ruta de acceso que comience con gke://. Este es el valor predeterminado.
      • False: Los administradores pueden configurar clústeres para ejecutar listas de entidades permitidas solo desde las rutas de acceso que especifiques en el parámetro allowPaths de la política de la organización. Si no especificas rutas de acceso en el parámetro allowPaths, los clústeres no podrán ejecutar ninguna lista de entidades permitidas desde ninguna fuente.
    4. Haz clic en Guardar. Se cerrará el panel Editar valores de parámetros.

  8. Para definir las listas de entidades permitidas específicas que se pueden instalar, sigue estos pasos:

    1. En el parámetro allowPaths, haz clic en Editar. Se abrirá el panel Editar valores de parámetros.
    2. En la sección Tipo de valor, selecciona Definido por el usuario.
    3. En la sección Valores definidos por el usuario, especifica una o más rutas de acceso a las fuentes de la lista de entidades permitidas. Para obtener más información sobre lo que puedes especificar, consulta Rutas de acceso de la lista de entidades permitidas.
    4. Haz clic en Guardar. Se cerrará el panel Editar valores de parámetros.
    5. En la sección Editar regla, haz clic en Listo.
  9. Opcional: Para probar el impacto de aplicar la política de la organización, haz clic en Probar cambios. Para obtener más información, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.

  10. Para aplicar la política en el modo de ejecución de prueba, haz clic en Establecer política de ejecución de prueba.

  11. Después de verificar que la política de la organización funciona según lo previsto en el modo de ejecución de prueba, haz clic en Establecer política para configurar la política activa.

Los cambios en la política de la organización pueden tardar hasta 15 minutos en aplicarse por completo.

gcloud

  1. Crea un archivo YAML que defina la política de la organización:

    name: RESOURCE_TYPE/RESOURCE_ID/policies/container.managed.autopilotPrivilegedAdmission
    spec:
      rules:
      - enforce: true
        parameters:
          allowAnyGKEPath: ALLOW_GKE_PATHS
          allowPaths:
          - ALLOWLIST1_PATH
          - ALLOWLIST2_PATH
    

    Reemplaza lo siguiente:

    • RESOURCE_TYPE: el tipo de Cloud de Confiance recurso. Usa uno de los siguientes valores:

      • organizations
      • folders
      • projects
    • RESOURCE_ID: el ID de la organización, el ID de la carpeta o el ID del proyecto.

    • ALLOW_GKE_PATHS: si se permiten las listas de entidades permitidas aprobadas por GKE. Especifica uno de los siguientes valores:

      • True: Permite la configuración del clúster con cualquier carga de trabajo de socio de GKE o cargas de trabajo de código abierto verificadas. Este es el valor predeterminado.
      • False: Permite la configuración del clúster solo con las rutas de acceso en el campo allowPaths.

    • ALLOWLIST1_PATH,ALLOWLIST2_PATH: la ruta de acceso a las listas de entidades permitidas. Para obtener más información sobre lo que puedes especificar, consulta Rutas de acceso de la lista de entidades permitidas.

    De manera opcional, para que la política de la organización sea condicional en una etiqueta, agrega un bloque condition al campo rules. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se puede guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.

  2. Para establecer la política de la organización en modo de ejecución de prueba, especifica el valor dryRunSpec para la --update-mask marca en el comando gcloud org-policies set-policy:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=dryRunSpec
    

    Reemplaza POLICY_FILEPATH por la ruta de acceso al archivo YAML que creaste en el paso anterior.

  3. Opcional: Para probar el impacto de aplicar esta política de la organización, usa el gcloud policy-intelligence simulate org-policy comando:

    gcloud policy-intelligence simulate org-policy \
        --organization=ORGANIZATION_ID \
        --policy-path=POLICY_FILEPATH
    

    Reemplaza ORGANIZATION_ID por el ID de tu organización.

  4. Después de verificar que la política de la organización funciona según lo previsto en el modo de ejecución de prueba, especifica el valor spec para la marca --update-mask en el comando gcloud org-policies set-policy para configurar la política activa:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=spec
    

    Los cambios en la política de la organización pueden tardar hasta 15 minutos en aplicarse por completo.

Configura una política de la organización para permitir solo clústeres de Autopilot

En esta sección, se muestra cómo configurar una política de la organización que permite solo clústeres de Autopilot. Te recomendamos que configures esta política en adición a crear una política de la organización para las listas de entidades permitidas, ya que los clústeres Standard pueden ejecutar la mayoría de las cargas de trabajo con privilegios. Permitir solo clústeres de Autopilot significa que tu entorno solo ejecuta las cargas de trabajo con privilegios que permites. Los pasos de esta sección son opcionales.

Para configurar esta política, selecciona una de las siguientes opciones:

Console

  1. Crea una restricción personalizada que permita solo la creación de clústeres de Autopilot:

    1. En la Cloud de Confiance consola de, accede a la página Políticas de la organización:

      Ir a Políticas de la organización

    2. Haz clic en Restricción personalizada. Se abrirá la página Crear restricción personalizada.

    3. Especifica un nombre visible y un ID único para la restricción.

    4. En la sección Aplicación, sigue estos pasos:

      1. En la lista Tipo de recurso, selecciona container.googleapis.com/Cluster.
      2. En la lista Método de aplicación, selecciona Aplicación cuando se cree.
      3. En la sección Condición, haz clic Editar condición. Se abrirá el panel Agregar condición.
      4. Especifica la siguiente expresión:

        resource.autopilot.enabled == true
        
      5. Haz clic en Guardar. Se cerrará el panel Agregar condición.

      6. En la sección Acción, selecciona Permitir.

    5. Haz clic en Crear restricción.

  2. Crea una política de la organización personalizada que aplique la restricción:

    1. En la tabla de restricciones, busca la restricción personalizada que creaste en el paso anterior.
    2. Haz clic en Acciones > Editar política. Se abrirá la página Editar política.
    3. En la sección Fuente de la política, selecciona Anular la política del elemento superior.
    4. Haz clic en Agregar una regla.
    5. En la sección Aplicación, selecciona Activada.
    6. Para probar el impacto de aplicar la política de la organización, haz clic en Probar cambios. Para obtener más información, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.
    7. Para aplicar la política en el modo de ejecución de prueba, haz clic en Establecer política de ejecución de prueba.
    8. Después de verificar que la política de la organización funciona según lo previsto en el modo de ejecución de prueba, haz clic en Establecer política para configurar la política activa.

    Los cambios en la política de la organización pueden tardar hasta 15 minutos en aplicarse por completo.

gcloud

  1. Crea una restricción personalizada que permita solo la creación de clústeres de Autopilot:

    1. Crea un archivo YAML que defina la restricción personalizada:

      name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: container.googleapis.com/Cluster
      methodTypes:
      - CREATE
      condition: resource.autopilot.enabled == true
      actionType: ALLOW
      displayName: "Allow only Autopilot clusters"
      

      Reemplaza lo siguiente:

      • ORGANIZATION_ID: Es el ID de tu organización.
      • CONSTRAINT_NAME: Es un nombre para tu nueva restricción.
    2. Establece la restricción personalizada:

      gcloud org-policies set-custom-constraint CONSTRAINT_FILEPATH
      

      Reemplaza CONSTRAINT_FILEPATH por la ruta de acceso al archivo YAML que creaste en el paso anterior.

    La restricción personalizada está disponible para usarse en una política de la organización.

  2. Crea una política de la organización personalizada que aplique la restricción:

    1. Crea un archivo YAML que defina la política de la organización:

      name: RESOURCE_TYPE/RESOURCE_ID/policies/custom.CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      

      Reemplaza lo siguiente:

      • RESOURCE_TYPE: el tipo de Cloud de Confiance recurso. Usa uno de los siguientes valores:

        • organizations
        • folders
        • projects
      • RESOURCE_ID: el ID de la organización, la carpeta o el proyecto.

      De manera opcional, para que la política de la organización sea condicional en una etiqueta, agrega un bloque condition al campo rules. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se puede guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.

    2. Para establecer la política de la organización en modo de ejecución de prueba, especifica el valor dryRunSpec para la --update-mask marca en el comando gcloud org-policies set-policy:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=dryRunSpec
      

      Reemplaza POLICY_FILEPATH por la ruta de acceso al archivo YAML que creaste en el paso anterior.

    3. Para probar el impacto de aplicar esta política de la organización, usa el gcloud policy-intelligence simulate org-policy comando:

      gcloud policy-intelligence simulate org-policy \
          --organization=ORGANIZATION_ID \
          --policy-path=POLICY_FILEPATH
      

      Reemplaza ORGANIZATION_ID por el ID de tu organización.

    4. Después de verificar que la política de la organización funciona según lo previsto en el modo de ejecución de prueba, especifica el valor spec para la marca --update-mask en el comando gcloud org-policies set-policy para configurar la política activa:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=spec
      

      Los cambios en la política de la organización pueden tardar hasta 15 minutos en aplicarse por completo.

¿Qué sigue?