Saltar a contenido

Amazon Web Services

El mejor método para realizar copias de seguridad de clústeres de Kubernetes que se ejecutan en Amazon Web Services (AWS) consiste en conceder al agente de copia de seguridad de Afi acceso para gestionar las instantáneas de volumen directamente mediante la API de AWS, en lugar de la API CSI genérica. Con esta integración, Afi utiliza la API de seguimiento de bloques modificados proporcionada por AWS para realizar copias de seguridad incrementales rápidas y ligeras.

En AWS, el acceso se gestiona creando políticas y asociándolas a identidades de IAM (usuarios, grupos de usuarios o roles) o a recursos de AWS. Una política es un objeto de AWS que, al asociarse con una identidad o un recurso, define sus permisos. AWS evalúa estas políticas cuando una entidad principal de IAM (un usuario o un rol) realiza una solicitud. Los permisos de las políticas determinan si la solicitud se autoriza o se rechaza.

Para utilizar la API de AWS en la gestión de instantáneas, debe crear un usuario de IAM con una política personalizada que permita realizar las operaciones relacionadas con las instantáneas y compartir las credenciales de dicho usuario con el agente de copia de seguridad de Afi. Los pasos se describen detalladamente a continuación.

Crear una política de IAM

A continuación se muestra la descripción JSON de una política de IAM necesaria para gestionar instantáneas. Guárdela en un archivo denominado policy.json:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateSnapshot",
        "ec2:DeleteSnapshot",
        "ec2:DescribeSnapshots",
        "ec2:CreateVolume",
        "ec2:DeleteVolume",
        "ec2:DescribeVolumes",
        "ec2:CreateTags",
        "ec2:DeleteTags",
        "ebs:ListSnapshotBlocks",
        "ebs:ListChangedBlocks",
        "ebs:GetSnapshotBlock"
      ],
      "Resource": "*"
    }
  ]
}

Cree una política de IAM en su cuenta de AWS:

aws iam create-policy --policy-name k8sbackup-policy \
    --policy-document file://policy.json

Para obtener más información, consulte el artículo Creación de políticas de IAM en la documentación de AWS.

Crear un usuario de IAM y asociar la política

Cree un usuario de IAM denominado k8sbackup:

aws iam create-user --user-name k8sbackup

Asocie la política k8sbackup-policy creada en la sección anterior al usuario k8sbackup (sustituya ${AccountId} por el ID de su cuenta de AWS):

aws iam attach-user-policy \
    --user-name k8sbackup \
    --policy-arn arn:aws:iam::${AccountId}:policy/k8sbackup-policy

Cree una clave de acceso para el usuario k8sbackup y guarde los valores AccessKeyId y SecretAccessKey para utilizarlos más adelante:

aws iam create-access-key --user-name k8sbackup

Para obtener más información, consulte el artículo Creación de un usuario de IAM en la documentación de AWS.

Crear el Secret aws-api-key y reiniciar el agente de copia de seguridad

Cree un Secret de Kubernetes denominado aws-api-key en el espacio de nombres donde esté instalado el agente de copia de seguridad de Afi:

kubectl -n backup-agent create secret generic aws-api-key \
    --from-literal=access-key-id=${AccessKeyId} \
    --from-literal=secret-access-key=${SecretAccessKey}

Reinicie el DaemonSet que crea instantáneas de los volúmenes persistentes:

kubectl -n backup-agent rollout restart ds/pvsnapshotter