Configuración de políticas para despliegue y creación de clusters

Obtenga información sobre las políticas de IAM que se deben crear antes de utilizar Kubernetes Engine (OKE).

Cuando se crea un arrendamiento, se crea automáticamente un grupo de Administradores para el arrendamiento. Los usuarios que son miembros del grupo de Administradores pueden realizar cualquier operación en los recursos del arrendamiento. Si todos los usuarios que van a trabajar con Kubernetes Engine ya son miembros del grupo Administradores, no es necesario crear otras políticas.

Sin embargo, si desea permitir que los usuarios que no sean miembros del grupo de Administradores utilicen Kubernetes Engine, debe crear políticas para activar los grupos a los que pertenecen esos usuarios para realizar operaciones en recursos del arrendamiento o en compartimentos individuales. Algunas políticas son necesarias; otras son opcionales. Consulte Creación de políticas necesarias para grupos y Creación de una o más políticas adicionales para grupos.

También debe crear políticas adicionales si desea:

Si desea que los grupos de usuarios de un arrendamiento accedan a recursos relacionados con el cluster en otros arrendamientos, debe crear sentencias de política entre arrendamientos especiales que indiquen explícitamente los recursos a los que se puede acceder y compartir. Consulte Acceso a recursos relacionados con clusters en arrendamientos.

Tenga en cuenta que, así como las políticas anteriores gestionadas por IAM, también puede utilizar el autorizador de Kubernetes RBAC para aplicar control de acceso detallado adicional para usuarios en clusters específicos a través de clusters y roles de Kubernetes RBAC. Consulte Acerca de control de acceso y Kubernetes Engine (OKE).

Crear política necesaria para grupos

Para crear, actualizar y suprimir clusters y pools de nodos, los usuarios que no sean miembros del grupo de Administradores deben tener permisos para trabajar con recursos relacionados con clusters. Para otorgar a los usuarios el acceso necesario, debe crear una política con un número de sentencias de política necesarias para los grupos a los que pertenecen los usuarios:

  1. Abra el menú de navegación y haga clic en Identidad y seguridad. En Identidad, haga clic en Políticas. Se muestra una lista de políticas en el compartimento que está viendo.
  2. Seleccione el compartimento raíz del arrendamiento o un compartimento individual que contenga recursos relacionados con el cluster de la lista de la izquierda.
  3. Haga clic en Crear política.
  4. Introduzca lo siguiente:

    • Nombre: nombre de la política (por ejemplo, acme-dev-team-oke-required-policy) que es exclusivo dentro del compartimento. Si está creando la política en el compartimento raíz del arrendamiento, el nombre debe ser exclusivo en todas las políticas del arrendamiento. Luego no podrá cambiarlo. Evite introducir información confidencial.
    • Descripción: descripción fácil de recordar. Puede cambiarla más tarde si lo desea.
    • Sentencia: las siguientes sentencias de políticas necesarias permiten a los usuarios utilizar Kubernetes Engine para crear, actualizar y suprimir clusters y pools de nodos:

      Allow group <group-name> to manage instance-family in <location>
      Allow group <group-name> to use subnets in <location>
      Allow group <group-name> to manage virtual-network-family in <location>
      Allow group <group-name> to inspect compartments in <location>
      Allow group <group-name> to use vnics in <location>
      Allow group <group-name> to use network-security-groups  in <location>
      Allow group <group-name> to use private-ips  in <location>
      Allow group <group-name> to manage public-ips  in <location>

      La siguiente sentencia de política necesaria para permitir a los usuarios realizar cualquier operación en recursos relacionados con clusters (esta política "catch-all" hace que todos los usuarios sean administradores hasta la fecha en cuanto a recursos relacionados con el cluster se refiere):

      Allow group <group-name> to manage cluster-family in <location>

      En las sentencias de política anteriores, sustituya <location> por tenancy (si está creando la política en el compartimento raíz del arrendamiento) o compartment <compartment-name> (si está creando la política en un compartimento individual).

      Nota

      Tenga en cuenta que, según el tipo de cluster, puede que algunas sentencias de política necesarias no lo sean:
      • Para trabajar con clusters "nativos de VCN" (donde el punto final de API de Kubernetes está totalmente integrado con la VCN), siempre se necesita use private-ips. Sin embargo, la sentencia de política use public-ips solo es necesaria si se selecciona la opción de dirección IP pública de los clusters. Para obtener más información sobre los clusters nativos de VCN, consulte Plano de control de cluster de Kubernetes y API de Kubernetes.
      • Para trabajar con clusters en los que el punto final de API de Kubernetes pública está en un arrendamiento gestionado por Oracle, las sentencias de política use vnics, use private-ips y use public-ips no son necesarias.

      Tenga en cuenta que si un grupo no está en el dominio de identidad por defecto, anteponga el nombre del grupo al nombre del dominio de identidad con el formato group '<identity-domain-name>'/'group-name'. También puede especificar un grupo mediante su OCID, con el formato group id <group-ocid>.

    • Etiquetas: si tiene permiso para crear un recurso, también tendrá permiso para aplicar etiquetas de formato libre a dicho recurso. Para aplicar una etiqueta definida, debe tener permisos para utilizar el espacio de nombres de etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar etiquetas más tarde.
  5. Haga clic en Crear.

Creación de una o más políticas adicionales para grupos

Para permitir que los usuarios que no sean miembros del grupo de Administradores utilicen Kubernetes Engine, creen políticas adicionales para activar los grupos a los que pertenecen esos usuarios para realizar operaciones en recursos relacionados con el cluster de la siguiente forma:

  1. Abra el menú de navegación y haga clic en Identidad y seguridad. En Identidad, haga clic en Políticas. Se muestra una lista de políticas en el compartimento que está viendo.
  2. Seleccione el compartimento raíz del arrendamiento o un compartimento individual que contenga recursos relacionados con el cluster de la lista de la izquierda.
  3. Haga clic en Crear política.
  4. Introduzca lo siguiente:

    • Nombre: nombre de la política (por ejemplo, acme-dev-team-oke-additional-policy) que es exclusivo dentro del compartimento. Si está creando la política en el compartimento raíz del arrendamiento, el nombre debe ser exclusivo en todas las políticas del arrendamiento. Luego no podrá cambiarlo. Evite introducir información confidencial.
    • Descripción: descripción fácil de recordar. Puede cambiarla más tarde si lo desea.
    • Sentencia: sentencia de política adecuada para permitir a los grupos existentes realizar operaciones en recursos relacionados con clusters. En las siguientes sentencias de política de ejemplo, sustituya <location> por tenancy (si está creando la política en el compartimento raíz del arrendamiento) o compartment <compartment-name> (si está creando la política en un compartimento individual):

      • Para permitir que los usuarios del grupo acme-dev-team creen y configuren automáticamente nuevos recursos de red asociados al crear nuevos clusters en el flujo de trabajo "Creación rápida", las políticas también deben otorgar al grupo:

        • permisos VCN_READ y VCN_CREATE. Introduzca una sentencia de política como la siguiente:

          Allow group acme-dev-team to manage vcns in <location>
        • permisos SUBNET_READ y SUBNET_CREATE. Introduzca una sentencia de política como la siguiente:

          Allow group acme-dev-team to manage subnets in <location>
        • permiso INTERNET_GATEWAY_CREATE. Introduzca una sentencia de política como la siguiente:

          Allow group acme-dev-team to manage internet-gateways in <location>
        • permiso NAT_GATEWAY_CREATE. Introduzca una sentencia de política como la siguiente:

          Allow group acme-dev-team to manage nat-gateways in <location>
        • permiso ROUTE_TABLE_UPDATE. Introduzca una sentencia de política como la siguiente:

          Allow group acme-dev-team to manage route-tables in <location>
        • permiso SECURITY_LIST_CREATE. Introduzca una sentencia de política como la siguiente:

          Allow group acme-dev-team to manage security-lists in <location>
      • Para permitir que los usuarios del grupo acme-dev-team-cluster-viewers muestren simplemente los clusters, introduzca una sentencia de política como la siguiente:

        Allow group acme-dev-team-cluster-viewers to inspect clusters in <location>
      • Para permitir que los usuarios del grupo acme-dev-team-pool-admins muestren, creen, actualicen y supriman pools de nodos, introduzca una sentencia de política como la siguiente:

        Allow group acme-dev-team-pool-admins to use cluster-node-pools in <location>
      • Para permitir a los usuarios del grupo acme-dev-team-auditors vean los detalles de las operaciones realizadas en clusters, introduzca una sentencia de política como la siguiente:

        Allow group acme-dev-team-auditors to read cluster-work-requests in <location>
      • Para permitir que los usuarios del grupo acme-dev-team-sgw creen un gateway de servicio que permita a los nodos de trabajador acceder a otros recursos de la misma región sin exponer datos a la red pública de Internet, introduzca una sentencia de política como la siguiente:

        Allow group acme-dev-team-sgw to manage service-gateways in <location>
      • Para permitir que los usuarios del grupoacme-dev-team accedan a clusters mediante Cloud Shell, introduzca una sentencia de política como la siguiente:

        Allow group acme-dev-team to use cloud-shell in <location>

        Tenga en cuenta que para acceder a los clusters mediante Cloud Shell, también tendrá que configurar el archivo kubeconfig de forma adecuada (consulte Configuración del acceso de Cloud Shell a los clusters). Para obtener más información sobre Cloud Shell, consulte Cloud Shell.

      • Para permitir a los usuarios del grupo acme-dev-team seleccionar claves de cifrado maestras y almacenes en el servicio Vault al crear y modificar clusters mediante la consola:
        Allow group acme-dev-team to read vaults in <location>
        Allow group acme-dev-team to read keys in <location>
      • Para permitir que los usuarios del grupo acme-dev-team utilicen reservas de capacidad:
        Allow group acme-dev-team to use compute-capacity-reservations in <location>

        Para obtener más información, consulte Uso de reservas de capacidad para aprovisionar nodos gestionados

      Nota

      Tenga en cuenta que si un grupo no está en el dominio de identidad por defecto, anteponga el nombre del grupo al nombre del dominio de identidad con el formato group '<identity-domain-name>'/'group-name'. También puede especificar un grupo mediante su OCID, con el formato group id <group-ocid>.

    • Etiquetas: si tiene permiso para crear un recurso, también tendrá permiso para aplicar etiquetas de formato libre a dicho recurso. Para aplicar una etiqueta definida, debe tener permisos para utilizar el espacio de nombres de etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar etiquetas más tarde.
  5. Haga clic en Crear.

Creación de una política para configurar y utilizar nodos virtuales

Para crear y utilizar clusters con nodos virtuales y pools de nodos virtuales, siempre debe configurar al menos una política de IAM, que es necesaria en todas las circunstancias tanto para los administradores del arrendamiento como para los usuarios que no sean administradores. Para permitir que los usuarios que no son administradores utilicen nodos virtuales, también debe configurar una política adicional. En resumen, las políticas:

  • Apruebe el servicio Kubernetes Engine para permitir que los nodos virtuales creen instancias de contenedor en el arrendamiento del servicio Kubernetes Engine con una VNIC conectada a una subred de una VCN en su arrendamiento.
  • Otorgue a los usuarios que no sean administradores los permisos necesarios.

Para obtener más información sobre las sentencias de política que se deben introducir, consulte Políticas de IAM necesarias para utilizar nodos virtuales.

Creación de una política para acceder a las claves de cifrado gestionadas por el usuario para el cifrado de volúmenes de inicio, volúmenes en bloque y/o sistemas de archivos

Para especificar una clave de cifrado maestra gestionada por el usuario concreta del servicio Vault para cifrar datos en volúmenes de inicio, volúmenes en bloque y/o sistemas de archivos, debe crear una política para permitir el acceso a esa clave de cifrado maestra. Para obtener más información sobre la especificación de claves de cifrado gestionadas por el usuario:

Tenga en cuenta que antes de crear la política, debe conocer el OCID de la clave de cifrado maestra (consulte Gestión de claves).

Para crear una política que permita el acceso a una clave de cifrado maestra gestionada por el usuario:

  1. Abra el menú de navegación y haga clic en Identidad y seguridad. En Identidad, haga clic en Políticas. Se muestra una lista de políticas en el compartimento que está viendo.
  2. Se muestra una lista de políticas en el compartimento que está viendo.
  3. Seleccione el compartimento raíz del arrendamiento o un compartimento individual que contenga recursos relacionados con el cluster de la lista de la izquierda.
  4. Haga clic en Crear política, siga las instrucciones de Para crear una política y asigne un nombre a la política (por ejemplo, acme-oke-keys-policy).
  5. Para volúmenes de inicio: para utilizar una clave de cifrado maestra del servicio Vault para cifrar datos en volúmenes de inicio, introduzca las siguientes sentencias de política para otorgar acceso a la clave de cifrado maestra:

    Allow group <group-name> to read keys in compartment <compartment-name> where target.key.id = '<key_OCID>'
    
    Allow service oke to use key-delegates in compartment <compartment-name> where target.key.id = '<key_OCID>'
    
    Allow service blockstorage to use keys in compartment <compartment-name> where target.key.id = '<key_OCID>'
    
    Allow any-user to use key-delegates in compartment <compartment-name> where ALL {request.principal.type='nodepool', target.key.id = '<key_OCID>'}

    donde:

    • <group-name> es un grupo al que pertenece. Tenga en cuenta que si un grupo no está en el dominio de identidad por defecto, anteponga el nombre del grupo al nombre del dominio de identidad con el formato group '<identity-domain-name>'/'group-name'. También puede especificar un grupo mediante su OCID, con el formato group id <group-ocid>.
    • <compartment-name> es el nombre del compartimento que contiene la clave de cifrado maestra.
    • <key-OCID> es el OCID de la clave de cifrado maestra del almacén de claves.

    Por ejemplo:

    Allow group acme-dev-team to read keys in compartment acme-kms-key-compartment where target.key.id = 'ocid1.key.oc1.iad.anntl______usjh'
    Allow service oke to use key-delegates in compartment acme-kms-key-compartment where target.key.id = 'ocid1.key.oc1.iad.anntl______usjh'
    Allow service blockstorage to use keys in compartment acme-kms-key-compartment where target.key.id = 'ocid1.key.oc1.iad.anntl______usjh'
    Allow any-user to use key-delegates in compartment acme-kms-key-compartment where ALL {request.principal.type='nodepool', target.key.id = 'ocid1.key.oc1.iad.anntl______usjh'}
  6. Para volúmenes en bloque: para utilizar una clave de cifrado maestra del servicio Vault para cifrar datos en volúmenes en bloque, introduzca sentencias de política para otorgar acceso a la clave de cifrado maestra con el formato:

    Allow service blockstorage to use keys in compartment <compartment-name> where target.key.id = '<key-ocid>'
    
    Allow any-user to use key-delegates in compartment <compartment-name> where ALL {request.principal.type = 'cluster', target.key.id = '<key-ocid>'}

    donde:

    • <compartment-name> es el nombre del compartimento que contiene la clave de cifrado maestra.
    • <key-OCID> es el OCID de la clave de cifrado maestra del almacén de claves.

    Por ejemplo:

    Allow service blockstorage to use keys in compartment acme-kms-key-compartment where target.key.id = 'ocid1.key.oc1.iad.anntl______usjh'
    Allow any-user to use key-delegates in compartment acme-kms-key-compartment where ALL {request.principal.type = 'cluster', target.key.id = 'ocid1.key.oc1.iad.anntl______usjh'}
  7. Para sistemas de archivos: para utilizar una clave de cifrado maestra del servicio Vault para cifrar datos en sistemas de archivos, introduzca sentencias de política para otorgar acceso a la clave de cifrado maestra con el formato:

    Allow dynamic-group <dynamic-group-name> to use keys in compartment <key-compartment-name>
    
    Allow any-user to use key-delegates in compartment <compartment-name> where ALL {request.principal.type = 'cluster', target.key.id = '<key_OCID>'}

    donde:

    • <dynamic-group-name> es el nombre del grupo dinámico de los sistemas de archivos del compartimento.

      A continuación se muestra una regla de ejemplo para el grupo dinámico:

      ALL { resource.type='filesystem', resource.compartment.id = '<file_system_compartment_OCID>' }

      Tenga en cuenta que si un grupo dinámico no está en el dominio de identidad por defecto, anteponga el nombre del grupo dinámico al nombre del dominio de identidad con el formato dynamic-group '<identity-domain-name>'/'<dynamic-group-name>'. También puede especificar el grupo dinámico mediante su OCID, con el formato dynamic-group id <dynamic-group-ocid>.

    • <compartment-name> es el nombre del compartimento que contiene la clave de cifrado maestra.
    • <key_OCID> es el OCID de la clave de cifrado maestra del almacén de claves.

    Por ejemplo:

    Allow dynamic-group FssFileSystems to use keys in compartment acme-kms-key-compartment
    Allow any-user to use key-delegates in compartment acme-kms-key-compartment where ALL {request.principal.type = 'cluster', target.key.id = 'ocid1.key.oc1.iad.anntl______usjh'}
  8. Haga clic en Crear.