Aller au contenu

Amazon Web Services

La meilleure méthode pour sauvegarder les clusters Kubernetes exécutés dans Amazon Web Services (AWS) consiste à donner à l’agent de sauvegarde Afi l’accès nécessaire pour gérer les instantanés de volumes directement via l’API AWS, plutôt que via l’API CSI générique. Grâce à cette intégration, Afi utilise l’API de suivi des blocs modifiés fournie par AWS pour effectuer des sauvegardes incrémentielles rapides et légères.

Dans AWS, vous gérez les accès en créant des politiques et en les associant à des identités IAM (utilisateurs, groupes d’utilisateurs ou rôles) ou à des ressources AWS. Dans AWS, une politique est un objet qui, lorsqu’il est associé à une identité ou à une ressource, définit ses autorisations. AWS évalue ces politiques lorsqu’un principal IAM (utilisateur ou rôle) effectue une demande. Les autorisations définies dans les politiques déterminent si la demande est autorisée ou refusée.

Pour utiliser l’API AWS afin de gérer les instantanés, vous devez créer un utilisateur IAM doté d’une politique IAM personnalisée autorisant les opérations liées aux instantanés, puis communiquer les identifiants de cet utilisateur IAM à l’agent de sauvegarde Afi. Les étapes sont décrites en détail ci-dessous.

Créer une politique IAM

Vous trouverez ci-dessous la description JSON de la politique IAM requise pour gérer les instantanés. Enregistrez-la dans un fichier nommé 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": "*"
    }
  ]
}

Créez une politique IAM dans votre compte AWS :

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

Pour plus d’informations, consultez l’article Création de politiques IAM de la documentation AWS.

Créer un utilisateur IAM et lui associer la politique

Créez l’utilisateur IAM k8sbackup :

aws iam create-user --user-name k8sbackup

Associez la politique k8sbackup-policy créée dans la section précédente à l’utilisateur k8sbackup (remplacez ${AccountId} par l’identifiant de votre compte AWS) :

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

Créez une clé d’accès pour l’utilisateur k8sbackup et enregistrez les valeurs AccessKeyId et SecretAccessKey pour une utilisation ultérieure :

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

Pour plus d’informations, consultez l’article Création d’un utilisateur IAM de la documentation AWS.

Créer le Secret aws-api-key et redémarrer l’agent de sauvegarde

Créez un Kubernetes Secret nommé aws-api-key dans l’espace de noms où l’agent de sauvegarde Afi est installé :

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

Redémarrez le daemonset qui crée les instantanés des volumes persistants :

kubectl -n backup-agent rollout restart ds/pvsnapshotter