En este documento, se explica cómo administrar los permisos para los clústeres estándar en Google Distributed Cloud (GDC) aislado con la CLI de gdcloud. Los clústeres estándar son entornos de Kubernetes configurables y con alcance de proyecto con servicios predeterminados mínimos que ofrecen mayor flexibilidad y control para las cargas de trabajo personalizadas.
Para obtener más información sobre los clústeres estándar y otros tipos de clústeres, consulta Configuraciones de clústeres de Kubernetes.
Este documento está dirigido a públicos dentro del grupo de operadores de aplicaciones, como operaciones de desarrolladores o científicos de datos, que necesitan administrar y proteger recursos dentro de los proyectos de GDC. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.
Antes de comenzar
Antes de administrar el acceso a los clústeres estándar, debes tener los permisos necesarios y preparar tu entorno.
Solicita roles de IAM
Comunícate con el administrador de IAM de tu organización para solicitar los siguientes roles según las tareas que necesites realizar:
- Administrador de IAM de proyectos (
project-iam-admin): Crea, actualiza y borra vinculaciones de roles para clústeres estándar dentro de un proyecto. - Administrador de clústeres estándar (
standard-cluster-admin): Crea, actualiza y borra vinculaciones de roles dentro de un clúster estándar específico.
Prepara el entorno
Otorga permisos para el acceso al clúster estándar
Un usuario con el rol de administrador de IAM de proyectos (project-iam-admin) puede otorgar a otros usuarios los roles necesarios para administrar el acceso dentro de los clústeres estándar:
Accede con tu proveedor de identidad configurado mediante la CLI de gdcloud.
Otorga al usuario el rol de administrador de clústeres estándar (
standard-cluster-admin) para el proyecto. Este comando vincula al usuario al rol, lo que le permite administrar el acceso dentro del clúster estándar.Consulta Descripciones de roles predefinidos y Definiciones de roles para proyectos para obtener más información sobre los roles.
gdcloud projects add-iam-policy-binding PROJECT \ --role=ROLE \ --member=user:USER_ACCOUNTReemplaza las siguientes variables:
PROJECT: El nombre del proyecto en el que existe el clúster estándar.ROLE: El nombre del rol que deseas otorgar (comostandard-cluster-admin).USER_ACCOUNT: La cuenta de usuario para la que deseas otorgar el rol, incluido el prefijo del proveedor de identidad asociado con tu organización (comoidpprefix-user@example.com). El prefijo específico que se usa depende de la configuración del IdP de tu organización. Consulta Conéctate a un proveedor de identidad para obtener más información.
En el siguiente ejemplo, se otorga el rol de administrador de clústeres estándar a
user@example.com, suponiendo que el prefijo del proveedor de identidad esfop-para el proyectofoo:gdcloud projects add-iam-policy-binding foo \ --role=standard-cluster-admin \ --member=user:fop-user@example.com
Administra el acceso dentro del clúster estándar
Un usuario con el rol de administrador de clústeres estándar (standard-cluster-admin) puede otorgar acceso dentro de un clúster estándar:
Accede con tu proveedor de identidad configurado mediante la CLI de gdcloud.
Genera un archivo kubeconfig para un clúster estándar con la marca
--standard. Esta marca es obligatoria para segmentar un clúster estándar.export KUBECONFIG=KUBECONFIG_FILE gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECTReemplaza las siguientes variables:
KUBECONFIG_FILE: La ruta de acceso al archivo kubeconfig, comostandard-cluster-kubeconfig.yaml.STANDARD_CLUSTER_NAME: El nombre del clúster estándar.PROJECT: El nombre del proyecto en el que existe el clúster estándar.
Define permisos dentro del clúster estándar con
kubectl.Los usuarios con permisos
standard-cluster-adminpueden crear objetosRoleyClusterRolepersonalizados. Para otorgar estos permisos, pueden crear los objetosRolebindingyClusterRoleBindingcorrespondientes para vincular los roles a temas específicos, como usuarios o cuentas de servicio.En el siguiente ejemplo, se usa
kubectlpara crear unRolepersonalizado de muestra llamadotest-roleen el espacio de nombrestest:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: test-role namespace: test rules: - apiGroups: - "" resources: - configmaps verbs: - get EOFEn el siguiente ejemplo, se crea el
RoleBindingpara elRolellamadotest-roleen el espacio de nombrestest. Otorga permisos al usuario alice@example.com con el prefijo del proveedor de identidadfop-, así como a unaServiceAccountllamadamy-service-accounten el espacio de nombresdefault:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: test-role-binding namespace: test subjects: - kind: User name: fop-alice@example.com apiGroup: rbac.authorization.k8s.io - kind: ServiceAccount name: my-service-account namespace: default roleRef: kind: Role name: test-role apiGroup: rbac.authorization.k8s.io EOF