Zum Inhalt

Amazon Web Services

Für Kubernetes-Cluster in Amazon Web Services (AWS) empfiehlt es sich, dem Afi-Sicherungsagenten die direkte Verwaltung von Volume-Snapshots über die AWS-API zu ermöglichen, statt die generische CSI-API zu verwenden. Mit dieser Integration nutzt Afi die von AWS bereitgestellte Changed-Block-Tracking-API für schnelle und ressourcenschonende inkrementelle Sicherungen.

Den Zugriff verwalten Sie in AWS, indem Sie Richtlinien erstellen und IAM-Identitäten (Benutzern, Benutzergruppen oder Rollen) beziehungsweise AWS-Ressourcen zuweisen. Eine Richtlinie ist ein AWS-Objekt, das nach der Verknüpfung mit einer Identität oder Ressource deren Berechtigungen festlegt. AWS wertet diese Richtlinien aus, wenn ein IAM-Prinzipal (Benutzer oder Rolle) eine Anfrage stellt. Die Berechtigungen in den Richtlinien bestimmen, ob die Anfrage zugelassen oder abgelehnt wird.

Um die AWS-API zur Snapshot-Verwaltung zu verwenden, müssen Sie einen IAM-Benutzer mit einer benutzerdefinierten IAM-Richtlinie erstellen, die Snapshot-bezogene Vorgänge erlaubt. Stellen Sie anschließend dem Afi-Sicherungsagenten die Anmeldedaten dieses IAM-Benutzers bereit. Die einzelnen Schritte werden nachfolgend beschrieben.

IAM-Richtlinie erstellen

Nachfolgend finden Sie die JSON-Beschreibung der für die Snapshot-Verwaltung erforderlichen IAM-Richtlinie. Speichern Sie sie in einer Datei namens 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": "*"
    }
  ]
}

Erstellen Sie die IAM-Richtlinie in Ihrem AWS-Konto:

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

Weitere Informationen finden Sie im Artikel Creating IAM policies der AWS-Dokumentation.

IAM-Benutzer erstellen und Richtlinie zuweisen

Erstellen Sie den IAM-Benutzer k8sbackup:

aws iam create-user --user-name k8sbackup

Weisen Sie die im vorherigen Abschnitt erstellte Richtlinie k8sbackup-policy dem Benutzer k8sbackup zu. Ersetzen Sie ${AccountId} durch Ihre AWS-Konto-ID:

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

Erstellen Sie einen Zugriffsschlüssel für den Benutzer k8sbackup und speichern Sie die Werte AccessKeyId und SecretAccessKey zur späteren Verwendung:

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

Weitere Informationen finden Sie im Artikel Creating an IAM user der AWS-Dokumentation.

Secret aws-api-key erstellen und Sicherungsagenten neu starten

Erstellen Sie im Namespace, in dem der Afi-Sicherungsagent installiert ist, ein Kubernetes-Secret namens aws-api-key:

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

Starten Sie das DaemonSet, das Snapshots persistenter Volumes erstellt, neu:

kubectl -n backup-agent rollout restart ds/pvsnapshotter