Comienza a usar Google Cloud CLI (GKE)

En este instructivo, se muestra cómo configurar y probar una política de autorización binaria que requiere certificaciones. Con este tipo de política, se protege tu cadena de suministro de software basada en contenedores mediante la verificación de que una imagen de contenedor tenga una certificación firmada antes de permitir la implementación de la imagen.

En el momento de la implementación, la autorización binaria usa certificadores para verificar las firmas digitales de las certificaciones. Los firmantes crean las certificaciones, por lo general, como parte de una canalización de integración continua (CI).

En este instructivo, el clúster de GKE, las certificaciones y los certificadores se encuentran en un solo proyecto. La configuración de un solo proyecto es muy útil para realizar pruebas o experimentar con el servicio. Para ver un ejemplo más real, consulta la configuración de varios proyectos.

En los siguientes pasos, se describen las tareas que debes realizar en la línea de comandos. Para seguir estos pasos con la consola de Google Cloud , consulta Comienza a usar la consola de Google Cloud .

Objetivos

En este instructivo, harás lo que se indica a continuación:

  • Crear un clúster de Google Kubernetes Engine (GKE) con la autorización binaria habilitada
  • Crear un certificador que el ejecutor de la autorización binaria usará para verificar la firma de una certificación
  • Configurar una política que requiera una certificación
  • Crear un par de claves criptográficas para firmar certificaciones y poder verificarlas más tarde
  • Firmar un resumen de imagen de contenedor, lo que crea una firma
  • Crear una certificación mediante la firma
  • Probar la política mediante la implementación de una imagen de contenedor en GKE

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios nuevos de Google Cloud cumplan con los requisitos para acceder a una prueba gratuita.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Instala Google Cloud CLI.

  5. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  6. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Instala kubectl para interactuar con GKE.

Habilitar autorización binaria

Antes de usar la Autorización binaria, configura tu proyecto predeterminado y habilita las APIs Google Cloud requeridas.

Configura el proyecto predeterminado

El primer paso es configurar el proyecto Google Cloud predeterminado que usa el comando gcloud:

PROJECT_ID=PROJECT_ID
gcloud config set project ${PROJECT_ID}

Reemplaza PROJECT_ID por el nombre de tu proyecto.

Habilita las APIs obligatorias

Habilita las siguientes APIs:

Artifact Registry

gcloud --project=${PROJECT_ID} \
    services enable\
    container.googleapis.com\
    artifactregistry.googleapis.com\
    binaryauthorization.googleapis.com

Crea un clúster con la autorización binaria habilitada

Para configurar tu entorno de Kubernetes, crea un clúster con la autorización binaria habilitada y configura kubectl para interactuar con él.

Crea el clúster

Crea un clúster (de GKE) con la autorización binaria habilitada Este es el clúster en el que se recomienda que se ejecuten las imágenes de contenedor que implementaste. Cuando creas el clúster, debes pasar la marca --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE al comando gcloud container clusters create.

Sigue estos pasos para crear el clúster:

gcloud container clusters create \
    --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE \
    --zone us-central1-a \
    test-cluster

Aquí, crearás un clúster llamado test-cluster en la zona de GKE us-central1-a.

Configurar kubectl

También debes actualizar el archivo local kubeconfig de tu instalación de kubectl. Esto proporciona las credenciales y la información del extremo necesarias para acceder al clúster en GKE.

Para actualizar el archivo kubeconfig local, ejecuta el siguiente comando:

gcloud container clusters get-credentials \
    --zone us-central1-a \
    test-cluster

Visualiza la política predeterminada

Una política en la autorización binaria es un conjunto de reglas que rige la implementación de imágenes de contenedor. Puedes tener una política por proyecto. De forma predeterminada, la política está configurada para permitir la implementación de todas las imágenes de contenedor.

La Autorización Binaria te permite importar y exportar un archivo de política en formato YAML. Este formato refleja la estructura de una política tal como el servicio la almacena. Cuando configuras una política mediante los comandos de gcloud, debes editar este archivo.

Para ver la política predeterminada, exporta el archivo de política en formato YAML:

gcloud container binauthz policy export

De forma predeterminada, el archivo tiene el siguiente contenido: