Impedir la creación de VMs que usen los metadatos del contenedor

Para asegurarte de que los recursos de tu organización no usen el agente de inicio de contenedor obsoleto y los metadatos gce-container-declaration relacionados, Google recomienda que apliques una política de la organización. La restricción administrada compute.managed.disableVmsWithContainerStartupAgent, cuando se aplica, inhabilita la creación de recursos que usan los metadatos obsoletos.

En este documento, se describe cómo hacer lo siguiente:

  • Aplicar una política de la organización para inhabilitar la creación de instancias de Compute Engine que usan el agente de inicio de contenedor
  • Supervisar el impacto de la política de la organización mediante la aplicación de la política en modo de ejecución de prueba
  • Identificar los proyectos que intentan usar el agente obsoleto con el Explorador de registros

Aplica la política de la organización para inhabilitar la creación de VMs que usan los metadatos del contenedor

Para evitar la creación de recursos que usan el agente de inicio de contenedor obsoleto, Google recomienda que apliques una política de la organización. La restricción constraints/compute.managed.disableVmsWithContainerStartupAgent impide que se creen recursos nuevos con la clave de metadatos gce-container-declaration. Esta restricción no afecta las instancias ni las plantillas de instancias existentes.

Puedes aplicar esta restricción con la Google Cloud consola, Google Cloud CLI o la API de Compute Engine.

Console

Para configurar la política de la organización con la consola, completa los siguientes pasos:

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

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona el proyecto, la organización o la carpeta para la que deseas editar las políticas de la organización.

    En la página Políticas de la organización , se muestra una lista de las restricciones de políticas de la organización disponibles.

  3. Selecciona la restricción Inhabilitar la creación de instancias de Compute Engine que usan el agente de inicio de contenedor obsoleto (konlet) de la lista de restricciones. En la página Detalles de la política que aparece, se describe la restricción y se proporciona información sobre cómo se aplica.

  4. Si deseas actualizar las políticas de la organización para este recurso, haz clic en Administrar política.

  5. En la página Editar política, haz clic en Anular la política superior de.

  6. Selecciona Agregar una regla.

  7. En Aplicación, selecciona Activado.

  8. De manera opcional, para obtener una vista previa del impacto del cambio en la política de la organización antes de que se aplique, haz clic en Probar cambios. Para obtener más información sobre cómo probar los cambios en las políticas de la organización, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.

  9. Para aplicar la política de la organización en modo de ejecución de prueba, haz clic en Establecer política de ejecución de prueba. Para obtener más información, consulta Crea una política de la organización en modo de ejecución de prueba a partir de una política activa.

  10. Luego de verificar que la política de la organización en el modo de ejecución de prueba funciona según lo previsto, haz clic en Configurar política para configurar la política activa.

gcloud

  1. Crea un archivo YAML para definir la política de la organización.

    name: RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.disableVmsWithContainerStartupAgent
    spec:
      rules:
      - enforce: true
    dryRunSpec:
      rules:
      - enforce: true
    

    Reemplaza lo siguiente:

    • RESOURCE_TYPE por organizations, folders o projects.

    • RESOURCE_ID por el ID de la organización, el ID de la carpeta, el ID del proyecto o el número del proyecto, según el tipo de recurso especificado en RESOURCE_TYPE.

    En el siguiente ejemplo, se muestra un archivo YAML que aplica la política de la organización para el proyecto con un ID de 123456:

    name: projects/123456/policies/compute.managed.disableVmsWithContainerStartupAgent
    spec:
      rules:
      - enforce: true
    dryRunSpec:
      rules:
      - enforce: true
    

    De manera opcional, para que la política de la organización dependa de una etiqueta, agrega un bloque condition a las rules. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla incondicional o no se podrá guardar la política. Para obtener más detalles, consulta Cómo configurar una política de la organización con etiquetas.

  2. Ejecuta el org-policies set-policy comando con la marca dryRunSpec para configurar la política de la organización en modo de ejecución de prueba:

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

    Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización.

    Para obtener más información sobre las políticas de la organización de ejecución de prueba, consulta Crea una política de la organización en modo de ejecución de prueba.

  3. Usa el policy-intelligence simulate orgpolicy comando para obtener una vista previa del impacto del cambio en la política de la organización antes de que se aplique:

    gcloud policy-intelligence simulate orgpolicy \
      --organization=ORGANIZATION_ID \
      --policies=POLICY_PATH
    

    Reemplaza lo siguiente:

    • ORGANIZATION_ID por el ID de tu organización, como 1234567890123. No se admite la simulación de cambios en varias organizaciones.

    • POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización.

    Para obtener más información sobre cómo probar los cambios en las políticas de la organización, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.

  4. Luego de verificar que la política de la organización en modo de ejecución de prueba funciona según lo previsto, configura la política activa con el comando org-policies set-policy y la marca spec:

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

    Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización.

REST

Para configurar la política de la organización, usa el organizations.policies.create método.

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

El cuerpo JSON de la solicitud contiene la definición de una política de la organización. Si esta restricción no admite parámetros, omite el bloque parameters en rules.

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.disableVmsWithContainerStartupAgent",
  "spec": {
    "rules": [
      {
        "enforce": true,
      }
    ]
  },
  "dryRunSpec": {
    "rules": [
      {
        "enforce": true,
      }
    ]
  }
}

Reemplaza lo siguiente:

  • RESOURCE_TYPE por organizations, folders o projects.

  • RESOURCE_ID por el ID de la organización, el ID de la carpeta, el ID del proyecto o el número del proyecto, según el tipo de recurso especificado en RESOURCE_TYPE.

En el siguiente ejemplo, se muestra un cuerpo de solicitud que aplica la política de la organización para el proyecto con un ID de 123456:

  {
    "name": "projects/123456/policies/compute.managed.disableVmsWithContainerStartupAgent",
    "spec": {
      "rules": [
        {
          "enforce": true,
        }
      ]
    },
    "dryRunSpec": {
      "rules": [
        {
          "enforce": true,
        }
      ]
    }
  }
  ```

Optionally, to make the organization policy conditional on a tag, add a
`condition` block to the `rules`. If you add a conditional rule to an
organization policy, you must add at least one unconditional rule or the
policy cannot be saved. For more details, see
[Setting an organization policy with tags](/resource-manager/docs/organization-policy/tags-organization-policy).

For more information about dry-run organization policies, see
[Create an organization policy in dry-run mode](/resource-manager/docs/organization-policy/dry-run-policy).

Supervisa el uso de los metadatos obsoletos mediante la aplicación de la política en modo de ejecución de prueba

En lugar de aplicar directamente la política, que bloquea la creación de instancias que usan los metadatos de declaración de contenedor, puedes aplicar la política en modo de ejecución de prueba. Esta configuración te permite supervisar y registrar cualquier acción que la política pueda bloquear, sin interferir con las operaciones. Para obtener más información, consulta Crea una política de la organización en modo de ejecución de prueba.

Cuando una acción activa la política de ejecución de prueba (por ejemplo, si intentas crear una instancia con la clave de metadatos gce-container-declaration), se genera una entrada de registro en los registros de auditoría de Cloud.

Para identificar los proyectos que intentan usar el agente obsoleto, completa los siguientes pasos:

  1. En la Google Cloud consola de, accede a la página Explorador de registros.

    Ir al Explorador de registros

  2. En el panel Consulta, ingresa la siguiente consulta:

    protoPayload.metadata.dryRun="true"
    protoPayload.methodName="CheckOrgPolicy"
    protoPayload.resourceName =~ "/compute.managed.disableVmsWithContainerStartupAgent"
    
  3. Haz clic en Ejecutar consulta.

  4. Identifica los proyectos que intentan usar el agente obsoleto revisando las entradas de registro. Los registros de incumplimientos de ejecución de prueba tienen las siguientes características:

    • Están relacionados con orgpolicy.googleapis.com.
    • El campo protoPayload.metadata.dryRun está configurado como true.
    • La restricción constraints/compute.managed.disableVmsWithContainerStartupAgent se incluye en los detalles del incumplimiento.
  5. Revisa la información en los registros de auditoría para comprender dónde y por qué aún se usa el agente obsoleto. Esta información puede guiar los esfuerzos para migrar esas cargas de trabajo a alternativas compatibles.

  6. Luego de verificar que la política de la organización en modo de ejecución de prueba funciona según lo previsto, aplica la política cambiando el estado de aplicación del modo de ejecución de prueba a activo.

Para obtener más información sobre el uso del Explorador de registros, consulta Visualiza registros con el Explorador de registros.

¿Qué sigue?