Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erstellen der IAM-Rolle des Amazon-EBS-CSI-Treibers
Das Amazon-EBS-CSI-Plugin benötigt IAM-Berechtigungen, um Anrufe an AWS-APIs in Ihrem Auftrag zu tätigen. Weitere Informationen finden Sie unter Treiberberechtigung einrichten
Anmerkung
Pods haben Zugriff auf die Berechtigungen, die der IAM-Rolle zugewiesen sind, es sei denn, Sie blockieren den Zugriff auf IMDS. Weitere Informationen finden Sie unter Bewährte Methoden für die Sicherheit in Amazon EKS.
Voraussetzungen
-
Einen vorhandenen -Cluster.
-
Ein vorhandener AWS Identity and Access Management-IAM OpenID Connect (OIDC)-Anbieter für Ihren Cluster. Informationen zum Feststellen, ob Sie bereits über einen verfügen oder einen erstellen müssen, finden Sie unter Erstellen eines IAM-OIDC-Anbieters für Ihren Cluster.
Das folgende Verfahren zeigt Ihnen, wie Sie eine IAM-Rolle erstellen und ihr die von AWS verwaltete Richtlinie hinzufügen. Sie können eksctl
, die AWS Management Console oder die AWS CLI verwenden.
Anmerkung
Die spezifischen Schritte in diesem Verfahren sind für die Verwendung des Treibers als Amazon-EKS-Add-on geschrieben. Es sind verschiedene Schritte erforderlich, um den Treiber als selbstverwaltetes Add-on zu verwenden.
- eksctl
-
So erstellen Sie Ihre Amazon-EBS-CSI-Plugin-IAM-Rolle mit
eksctl
-
Erstellen Sie eine IAM-Rolle und fügen Sie eine Richtlinie an. AWS unterhält eine von AWS verwaltete Richtlinie oder Sie können eine eigene benutzerdefinierte Richtlinie erstellen. Sie können eine IAM-Rolle erstellen und die verwaltete Richtlinie AWS mit dem folgenden Befehl anhängen. Ersetzen Sie
mit dem Namen Ihres Clusters. Der Befehl stellt ein AWS CloudFormation-Stack bereit, das eine IAM-Rolle erstellt und ihr die IAM-Richtlinie anfügt. Wenn sich Ihr Cluster in der AWS GovCloud (USA-Ost) oder AWS GovCloud (USA-West) befindetAWS-Regionen, ersetzen Sie durchmy-cluster
arn:aws:
arn:aws-us-gov:
.eksctl create iamserviceaccount \ --name ebs-csi-controller-sa \ --namespace kube-system \ --cluster
my-cluster
\ --role-nameAmazonEKS_EBS_CSI_DriverRole
\ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --approve -
Wenn Sie einen benutzerdefinierten KMS-Schlüssel
für die Verschlüsselung auf Ihren Amazon-EBS-Volumes verwenden, passen Sie die IAM-Rolle nach Bedarf an. Führen Sie beispielsweise folgende Schritte aus: -
Kopieren Sie den folgenden Code und fügen Sie diesen in eine neue
-Datei ein. Ersetzen Siekms-key-for-encryption-on-ebs
.json
durch den benutzerdefinierten KMS-Schlüssel-ARN.custom-key-arn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["
custom-key-arn
"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn
"] } ] } -
Erstellen Sie die Richtlinie. Sie können
in einen anderen Namen ändern. In diesem Fall ändern Sie sie auch in den späteren Schritten.KMS_Key_For_Encryption_On_EBS_Policy
aws iam create-policy \ --policy-name
KMS_Key_For_Encryption_On_EBS_Policy
\ --policy-document file://kms-key-for-encryption-on-ebs
.json -
Hängen Sie die IAM-Richtlinie mit dem folgenden Befehl an die Rolle an. Ersetzen Sie
durch Ihre Konto-ID. Wenn sich Ihr Cluster in der AWS GovCloud (USA-Ost) oder AWS GovCloud (USA-West) befindetAWS-Regionen, ersetzen Sie durch111122223333
arn:aws:
arn:aws-us-gov:
.aws iam attach-role-policy \ --policy-arn arn:aws:iam::
111122223333
:policy/KMS_Key_For_Encryption_On_EBS_Policy
\ --role-nameAmazonEKS_EBS_CSI_DriverRole
-
-
- AWS Management Console
-
So erstellen Sie Ihre Amazon-EBS-CSI-Plugin-IAM-Rolle mit dem AWS Management Console
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im linken Navigationsbereich Roles aus.
-
Klicken Sie auf der Seite Roles (Rollen) auf Create role (Rolle erstellen).
-
Gehen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) wie folgt vor:
Wählen Sie im Abschnitt Trusted entity type (Typ der vertrauenswürdigen Entität) die Option Web identity (Web-Identität) aus.
-
Wählen Sie für Identity provider (Identitätsanbieter) die Option OpenID Connect provider URL (-Anbieter-URL) für Ihren Cluster aus (wie unter Overview (Übersicht) in Amazon EKS gezeigt).
-
Wählen Sie für Audience (Zielgruppe)
sts.amazonaws.com
. Wählen Sie Next (Weiter).
-
Gehen Sie auf der Seite Add permissions (Berechtigungen hinzufügen) wie folgt vor:
-
Geben Sie im Feld Filter policies (Filterrichtlinien)
AmazonEBSCSIDriverPolicy
ein. -
Aktivieren Sie das Kontrollkästchen links neben der
AmazonEBSCSIDriverPolicy
, die bei der Suche zurückgegeben wurde. Wählen Sie Next (Weiter).
-
-
Gehen Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) wie folgt vor:
-
Geben Sie unter Role name (Rollenname) einen eindeutigen Namen für die Rolle ein, z. B.
.AmazonEKS_EBS_CSI_DriverRole
Fügen Sie der Rolle unter Tags hinzufügen (optional) Metadaten hinzu, indem Sie Tags als Schlüssel-Wert-Paare anfügen. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Markieren von IAM-Ressourcen im IAM-Benutzerhandbuch.
-
Wählen Sie Create role (Rolle erstellen) aus.
-
Nachdem die Rolle erstellt wurde, wählen Sie die Rolle in der Konsole aus, um sie zur Bearbeitung zu öffnen.
Wählen Sie die Registerkarte Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.
-
Suchen Sie die Zeile, die der folgenden Zeile ähnelt:
"oidc.eks.
region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:aud": "sts.amazonaws.com"Fügen Sie am Ende der vorherigen Zeile ein Komma hinzu und fügen Sie anschließend die folgende Zeile nach der vorherigen Zeile hinzu. Ersetzen Sie
durch die AWS-Region, in der sich Ihr Cluster befindet. Ersetzen vonregion-code
mit der OIDC-Anbieter-ID Ihres Clusters.EXAMPLED539D4633E53DE1B71EXAMPLE
"oidc.eks.
region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa" Wählen Sie Update Policy (Richtlinie aktualisieren) aus, um den Vorgang abzuschließen.
-
Wenn Sie einen benutzerdefinierten KMS-Schlüssel
für die Verschlüsselung auf Ihren Amazon-EBS-Volumes verwenden, passen Sie die IAM-Rolle nach Bedarf an. Führen Sie beispielsweise folgende Schritte aus: -
Wählen Sie im linken Navigationsbereich die Option Policies aus.
-
Wählen Sie auf der Seite Policies (Richtlinien) die Option Create a policy (Richtlinie erstellen).
-
Wählen Sie auf der Seite Create policy (Richtlinie erstellen) die Registerkarte JSON aus.
-
Kopieren Sie den folgenden Code in den Editor und ersetzen Sie
durch den benutzerdefinierten KMS-Schlüssel-ARN:custom-key-arn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["
custom-key-arn
"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn
"] } ] } -
Wählen Sie Next: Markierungen (Weiter: Markierungen).
-
Wählen Sie auf der Seite Add Tags (optional) (Tags hinzufügen (optional)) die Option Next: Review (Weiter: Prüfen).
-
Geben Sie unter Name einen eindeutigen Namen für Ihre Richtlinie ein (z. B.
).KMS_Key_For_Encryption_On_EBS_Policy
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie im linken Navigationsbereich Roles aus.
-
Wählen Sie
AmazonEKS _EBS_CSI_DriverRole
in der Konsole aus, um es zur Bearbeitung zu öffnen. -
Wählen Sie in der Dropdown-Liste Add permissions (Berechtigungen hinzufügen) Attach policies (Richtlinien hinzufügen) aus.
-
Geben Sie im Feld Filter policies (Filterrichtlinien)
ein.KMS_Key_For_Encryption_On_EBS_Policy
-
Aktivieren Sie das Kontrollkästchen links neben der
, die bei der Suche zurückgegeben wurde.KMS_Key_For_Encryption_On_EBS_Policy
-
Wählen Sie Attach Policies (Richtlinien hinzufügen).
-
- AWS CLI
-
So erstellen Sie Ihre Amazon-EBS-CSI-Plugin-IAM-Rolle mit dem AWS CLI
-
Zeigen Sie die OIDC-Anbieter-URL Ihres Clusters an. Ersetzen Sie
durch Ihren Clusternamen. Wenn die Ausgabe des Befehlsmy-cluster
None
ist, überprüfen Sie die Voraussetzungen.aws eks describe-cluster --name
my-cluster
--query "cluster.identity.oidc.issuer" --output textEine Beispielausgabe sieht wie folgt aus.
https://oidc.eks.
region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
-
Erstellen Sie die IAM-Rolle und gewähren Sie ihr die
AssumeRoleWithWebIdentity
-Aktion.-
Kopieren Sie den folgenden Inhalt in eine Datei namens
. Ersetzen Sieaws-ebs-csi-driver-trust-policy
.json
durch Ihre Konto-ID. Ersetzen Sie111122223333
undEXAMPLED539D4633E53DE1B71EXAMPLE
mit den im vorherigen Schritt zurückgegebenen Werten. Wenn sich Ihr Cluster in der AWS GovCloud (USA-Ost) oder AWS GovCloud (USA-West) befindetAWS-Regionen, ersetzen Sie durchregion-code
arn:aws:
arn:aws-us-gov:
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::
111122223333
:oidc-provider/oidc.eks.region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:aud": "sts.amazonaws.com", "oidc.eks.region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa" } } } ] } -
Erstellen Sie die -Rolle. Sie können
in einen anderen Namen ändern. Wenn Sie es ändern, ändern Sie es in späteren Schritten.AmazonEKS_EBS_CSI_DriverRole
aws iam create-role \ --role-name
AmazonEKS_EBS_CSI_DriverRole
\ --assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy
.json"
-
-
Anfügen einer Richtlinie. AWS verwaltet eine AWS verwaltete Richtlinie oder Sie können Ihre eigene benutzerdefinierte Richtlinie erstellen. Hängen Sie die verwaltete Richtlinie AWS mit dem folgenden Befehl an die Rolle an. Wenn sich Ihr Cluster in der AWS GovCloud (USA-Ost) oder AWS GovCloud (USA-West) befindetAWS-Regionen, ersetzen Sie durch
arn:aws:
arn:aws-us-gov:
.aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --role-name
AmazonEKS_EBS_CSI_DriverRole
-
Wenn Sie einen benutzerdefinierten KMS-Schlüssel
für die Verschlüsselung auf Ihren Amazon-EBS-Volumes verwenden, passen Sie die IAM-Rolle nach Bedarf an. Führen Sie beispielsweise folgende Schritte aus: -
Kopieren Sie den folgenden Code und fügen Sie diesen in eine neue
-Datei ein. Ersetzen Siekms-key-for-encryption-on-ebs
.json
durch den benutzerdefinierten KMS-Schlüssel-ARN.custom-key-arn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["
custom-key-arn
"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn
"] } ] } -
Erstellen Sie die Richtlinie. Sie können
in einen anderen Namen ändern. In diesem Fall ändern Sie sie auch in den späteren Schritten.KMS_Key_For_Encryption_On_EBS_Policy
aws iam create-policy \ --policy-name
KMS_Key_For_Encryption_On_EBS_Policy
\ --policy-document file://kms-key-for-encryption-on-ebs
.json -
Hängen Sie die IAM-Richtlinie mit dem folgenden Befehl an die Rolle an. Ersetzen Sie
durch Ihre Konto-ID. Wenn sich Ihr Cluster in der AWS GovCloud (USA-Ost) oder AWS GovCloud (USA-West) befindetAWS-Regionen, ersetzen Sie durch111122223333
arn:aws:
arn:aws-us-gov:
.aws iam attach-role-policy \ --policy-arn arn:aws:iam::
111122223333
:policy/KMS_Key_For_Encryption_On_EBS_Policy
\ --role-nameAmazonEKS_EBS_CSI_DriverRole
-
-
Nachdem Sie die IAM-Rolle des Amazon-EBS-CSI-Treibers erstellt haben, können Sie mit Hinzufügen des Amazon-EBS-CSI-Add-ons fortfahren. Wenn Sie das Plugin in diesem Verfahren bereitstellen, wird es erstellt und für die Verwendung eines Servicekontos mit dem Namen ebs-csi-controller-sa
konfiguriert. Das Servicekonto ist an eine Kubernetes clusterrole
gebunden, der die erforderlichen Kubernetes-Berechtigungen zugewiesen sind.