Ir al contenido
  1. Blog/

Como Instalar Kasten K10 en AWS EKS

··1220 palabras·6 mins·
Autor
Marco Escobar
Data protection, Kubernetes, ciberseguridad e IA. Guías prácticas desde la trinchera: Veeam, Kasten, VMware, Oracle, cloud y lo que sea que esté rompiendo en el homelab esta semana.
Tabla de contenido
Como Instalar Kasten K10 en AWS EKS — eks

Uno de los servicios más utilizados nativos de la nube, son los contenedores orquestados por Kubernetes, donde los servicios de nube publica son uno de los más usados para este tipo de carga de trabajo. De hecho en una de las encuestas de cncf.io del 2020, nos muestra que alrededor del 60% de los usuarios / empresas utilizan almacenamiento nativo de nube para sus contenedores directamente desde Google (81%), AWS (80%) y Azure (74%), seguro que estos porcentajes han cambiado en estos años. Es por esto que en este post revisaremos como proteger todos los contenedores en AWS EKS.

Pasos Iniciales
#

Inicialmente, ya que mencioné el reporte de cncf.io, lo puedes revisar aquí:

https://www.cncf.io/wp-content/uploads/2020/12/CNCF_Survey_Report_2020.pdf

Como siempre debemos revisar la documentación oficial de Kasten:

https://docs.kasten.io/latest/install/aws/aws.html

Aquí veremos la forma recomendada de instalación, existiendo otra, pero debemos tratar siempre se acercarnos a las buenas practicas.

Instalación Kasten con IAM Role
#

La forma recomendada es utilizar la integración con un rol de IAM asociado a una cuenta de servicio, en este caso, k10-k10, por tanto comenzaremos creando las políticas de IAM para asignar los permisos de acuerdo a la configuración oficial de Kasten:

El primer link nos indica los permisos necesarios para realizar snapshots, restaurar y migrar entre distintos cluster. En el segundo link nos aparecen todos los permisos por cada servicio que se necesita acceso de acuerdo a lo que necesites proteger. En este caso veremos 3 políticas de IAM para crear y tener una granularidad de permisos a la cuenta de servicio.

Generaremos 3 políticas, asociadas al json que nos muestra la documentación de Kasten, por ejemplo, para hacer la política de AWS EBS debemos hacer clic en “Crear Política”, clic en “JSON” y pegamos el contenido:

Como Instalar Kasten K10 en AWS EKS — captura 1

Luego, clic en siguiente, para aplicar tags y luego como último paso ingresaremos el nombre de la política:

Como Instalar Kasten K10 en AWS EKS — captura 2

**Importante: Se debe realizar la creación de las políticas necesarias, por tanto, se debe repetir este paso, con las políticas para los servicios necesarios del segundo link anterior**

Como Instalar Kasten K10 en AWS EKS — captura 3

Habilitar OIDC en EKS
#

Debemos utilizar Cloudshell o una configuración local de aws cli, configurando la autenticacion como un usuario administrador para la gestión de los siguientes comandos.

Para contar con una autenticación correcta, podemos configurar OIDC en nuestro cluster EKS con el siguiente comando (debes ingresar el nombre de tu cluster):

 eksctl utils associate-iam-oidc-provider --cluster NombreCluster --approve
```bash



Como Instalar Kasten K10 en AWS EKS — captura 4
Como se indica en la documentacion: [https://docs.kasten.io/latest/install/aws/using\_aws\_iam\_roles.html#creating-an-iam-role-for-k10-install](https://docs.kasten.io/latest/install/aws/using_aws_iam_roles.html#creating-an-iam-role-for-k10-install) Se debe considerar que el nombre del la cuenta de servicio que crearemos debe ser "k10-k10", el namespace "kasten-io" y ademas agregar el ARN de las políticas que generamos, para obtener los ARN de las políticas, debes ingresar en IAM y hacer clic en el nombre de la política para ver el ARN, copiamos cada uno de los ARN de las políticas creadas anteriormente:
Como Instalar Kasten K10 en AWS EKS — captura 5
Ahora crearemos el namespace "kasten-io" ```bash kubectl create ns kasten-io ```bash
Como Instalar Kasten K10 en AWS EKS — captura 6
Y luego generamos la cuenta de servicio con el siguiente comando: ```bash eksctl create iamserviceaccount \ --name k10-k10 \ --namespace kasten-io \ --cluster Lab-EKS \ --attach-policy-arn arn:aws:iam::123456789000:policy/k10-EBS \ --attach-policy-arn arn:aws:iam::123456789000:policy/k10-RDS \ --attach-policy-arn arn:aws:iam::123456789000:policy/k10-S3 \ --approve \ --override-existing-serviceaccounts ```bash **\*\*recuerda ingresar el nombre del cluster EKS y el ARN de cada politica\*\***
Como Instalar Kasten K10 en AWS EKS — captura 7
Luego de esto veremos en IAM, un nuevo Rol:
Como Instalar Kasten K10 en AWS EKS — captura 8
Como se observa en la imagen anterior, las políticas están asociadas a este nuevo rol generado y asociado a la cuenta de servicio. Copiaremos el ARN del nuevo rol y pasaremos a la instalación de Kasten K10 ## Instalación Kasten K10 AWS EKS Como ya hemos visto varias veces en este blog, debemos tener configurado "helm" con su respectivo chart, lo puedes ver aquí: /veeam-kasten/#Instalacion\_de\_Kasten Y ahora instalaremos Kasten K10 con el siguiente comando: ```bash helm install k10 kasten/k10 --namespace=kasten-io --set secrets.awsIamRole="arn:aws:iam::123456789000:role/eksctl-Lab-EKS-addon-iamserviceaccount-kaste-Role1-12FASDASDCKA" ```bash **\*Recuerda que debes ingresar el ARN del Rol creado anteriormente\***
Como Instalar Kasten K10 en AWS EKS — captura 9
\\*\\* En caso de que aparezca un error reclamando sobre la existencia de un cuenta de servicio, solo elimina y crea nuevamante el namsespace kasten-io\*\* Esperamos que los pods de "kasten-io" queden en estado "running" revisándolos con el siguiente comando: ```bash watch kubectl get pods -n kasten-io ```bash
Como Instalar Kasten K10 en AWS EKS — captura 10
Si deseas ver los discos que se crearon automáticamente con la instalación de Kasten K10: ```bash kubectl get pvc -n kasten-io ```bash
Como Instalar Kasten K10 en AWS EKS — captura 11
Por último necesitamos acceso a la consola de Kasten K10, sólo debemos ejecutar el siguiente comando: ```bash helm upgrade k10 kasten/k10 --namespace=kasten-io \ --reuse-values \ --set externalGateway.create=true \ --set auth.tokenAuth.enabled=true ```bash Lo cual creara un servicio de "Load Balancer" y asignara una dirección dns de AWS: ```bash kubectl get svc gateway-ext -n kasten-io ```bash
Como Instalar Kasten K10 en AWS EKS — captura 12
Solo debemos ingresar a la url, en este caso: http://a8c57c2bded63432194a6545af3ce024-1753718719.sa-east-1.elb.amazonaws.com/k10/#/
Como Instalar Kasten K10 en AWS EKS — captura 13
y procederemos a autenticarnos como se observa en la documentación oficial: [https://docs.kasten.io/latest/access/authentication.html#obtaining-tokens](https://docs.kasten.io/latest/access/authentication.html#obtaining-tokens) Hasta aquí ya puedes usar Kasten K10 para realizar respaldo de tus cargas en AWS EKS :) ## Integrar con K10 Multi-Cluster Manager AWS EKS Ya hemos visto anteriormente como instalar K10 Multi-Cluster Manager, si no lo haz revisado aún: /kasten-rbac-multi-tenant-multi-cluster-keycloak/ O instalar K10 Multi-Cluster Manager sin Keycloak: /instalar-kasten-multi-cluster-manager/ Ahora, nos queda configurar el archivo kubeconfig en nuestra interfaz de Multi-Cluster Manager, intentaremos agregar el cluster por la interfaz web, haciendo clic en "Add Clusters" y pegaremos el contenido del archivo kubeconfig de nuestro cluster AWS EKS y nos mostrará lo siguiente:
Como Instalar Kasten K10 en AWS EKS — captura 14
Como vemos, no se puede seleccionar el cluster, ya que K10MultiCluster necesita un paso anterior para preparar el archivo kubeconfig correctamente, para ello realizaremos el siguiente comando para identificar el contexto de kubernetes usado: ```bash kubectl config get-contexts ```json
Como Instalar Kasten K10 en AWS EKS — captura 15
Copiamos el nombre del contexto y luego ejecutamos el comando: ```text k10multicluster kubeconfig prepare --context arn:aws:eks:sa-east-1:12345678900:cluster/Lab-EKS
Como Instalar Kasten K10 en AWS EKS — captura 16

Copiamos el contenido después de “—” y lo pegamos nuevamente en K10 Multi-Cluster Manager en “Add Clusters” y veremos que ahora están habilitadas las opciones para agregar el cluster de AWS EKS:

Como Instalar Kasten K10 en AWS EKS — captura 17

Seleccionamos el cluster y lo pasamos hacia la derecha, para luego ingresar el “Cluster Display Name”, la “Ingress URL” que es la direccion url que se nos asigno en los servicios de kasten-io, siempre agregando como lo indica la interfaz, namespace “kasten-io”, release name de helm “k10” y deshabilitar el TLS, ya que lo estamos agregando sin TLS, en caso de que configures el acceso con certificado, habilitas, luego clic en “Add Clusters”:

Como Instalar Kasten K10 en AWS EKS
Como Instalar Kasten K10 en AWS EKS — image 18 1024 x 554

Y tendremos el cluster de AWS EKS en nuestra K10 Multi-Cluster Manager configurado para aplicar las políticas necesarias.

Agregar bucket S3 con el Rol IAM
#

Como anteriormente configuramos todos los permisos asociados a una cuenta de servicio de kasten k10 y las políticas asociadas al rol creado, cuando configuramos un “Location Profile” podremos usar el mismo IAM Role para la autenticacion seleccionando:

Como Instalar Kasten K10 en AWS EKS — captura 18

Ingresamos la Región, Nombre del bucket y guardamos el profile, por supuesto si el bucket tiene habilitada la inmutabilidad también la puedes usar.

Recomendaciones
#

Siempre las recomendaciones son a nivel de seguridad, siempre solo permite las direcciones IP’s autorizadas para que accedan a los servicios de kasten, a través de reglas de firewall para conservar la privacidad, por otra parte, si es necesario generar mas permisos al rol, solo debes generar la política necesaria, como por ejemplo para respaldar con los permisos necesarios de RDS y asociarlo al rol generado.

Posts relacionados
#

Relacionados