Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Zugriffsrichtlinien mit Zugriffseinträgen verknüpfen
Sie können Zugriffseinträgen vom Typ STANDARD eine oder mehrere Zugriffsrichtlinien zuweisen. Amazon EKS erteilt den anderen Arten von Zugriffseinträgen automatisch die erforderlichen Berechtigungen, damit sie in Ihrem Cluster ordnungsgemäß funktionieren. Die Amazon-EKS-Zugriffsrichtlinien beinhalten Kubernetes-Berechtigungen, keine IAM-Berechtigungen. Machen Sie sich mit den Kubernetes-Berechtigungen vertraut, die in den einzelnen Zugriffsrichtlinien-Optionen enthalten sind, bevor Sie einem Zugriffseintrag eine Zugriffsrichtlinie zuweisen. Weitere Informationen finden Sie unter Berechtigungen von Zugriffsrichtlinien überprüfen. Wenn keine der Zugriffsrichtlinien Ihre Anforderungen erfüllt, ordnen Sie einem Zugriffseintrag keine Zugriffsrichtlinie zu. Geben Sie stattdessen mindestens einen Gruppennamen für den Zugriffseintrag an und erstellen und verwalten Sie Kubernetes-Objekte für die rollenbasierte Zugriffskontrolle. Weitere Informationen finden Sie unter Zugriffseinträge erstellen.
-
Ein vorhandener Zugriffseintrag. Informationen zum Erstellen finden Sie unter Zugriffseinträge erstellen.
-
Eine Rolle oder ein entsprechender Benutzer für AWS Identity and Access Management mit folgenden Berechtigungen:
ListAccessEntries,DescribeAccessEntry,UpdateAccessEntry,ListAccessPolicies,AssociateAccessPolicyundDisassociateAccessPolicy. Weitere Informationen finden Sie unter Von Amazon Elastic Kubernetes Service definierte Aktionen in der Service-Autorisierungsreferenz.
Berücksichtigen Sie die folgenden Anforderungen, bevor Sie Zugriffsrichtlinien mit Zugriffseinträgen verknüpfen:
-
Sie können jedem Zugriffseintrag mehrere Zugriffsrichtlinien zuordnen, aber Sie können jede Richtlinie nur einmal einem Zugriffseintrag zuordnen. Wenn Sie mehrere Zugriffsrichtlinien zuordnen, verfügt der IAM-Prinzipal des Zugriffseintrags über alle Berechtigungen aus allen zugeordneten Zugriffsrichtlinien.
-
Sie können eine Zugriffsrichtlinie auf alle Ressourcen in einem Cluster ausrichten oder den Namen eines oder mehrerer Kubernetes-Namespaces angeben. Sie können Platzhalterzeichen für einen Namespace-Namen verwenden. Wenn Sie beispielsweise eine Zugriffsrichtlinie auf alle Namespaces ausrichten möchten, die mit
dev-beginnen, können Siedev-*als Namespace-Namen angeben. Stellen Sie sicher, dass die Namespaces in Ihrem Cluster vorhanden sind und dass Ihre Schreibweise dem tatsächlichen Namespace-Namen im Cluster entspricht. Amazon EKS überprüft weder die Schreibweise noch das Vorhandensein der Namespaces in Ihrem Cluster. -
Der Zugriffsbereich für eine Zugriffsrichtlinie kann geändert werden, nachdem sie einem Zugriffseintrag zugeordnet wurde. Wenn Sie die Zugriffsrichtlinie auf Kubernetes-Namespaces beschränkt haben, können Sie bei Bedarf Namespaces für die Zuordnung hinzufügen und entfernen.
-
Wenn Sie eine Zugriffsrichtlinie einem Zugriffseintrag zuordnen, für den auch Gruppennamen angegeben sind, verfügt der IAM-Prinzipal über alle Berechtigungen in allen zugehörigen Zugriffsrichtlinien. Außerdem verfügt er über alle Berechtigungen aus jedem
Role-Objekt vom TypClusterRoleoderRole, das in einem beliebigen Kubernetes-Objekt vom Typ oderRoleBindingzum Angeben der Gruppennamen angegeben ist. -
Wenn Sie den Befehl
kubectl auth can-i --listausführen, werden keine Kubernetes-Berechtigungen angezeigt, die durch Zugriffsrichtlinien zugewiesen wurden, die einem Zugriffseintrag für den IAM-Prinzipal zugeordnet sind, den Sie beim Ausführen des Befehls verwenden. Der Befehl zeigt nur Kubernetes-Berechtigungen an, wenn Sie sie in Kubernetes-Objekten vom TypRoleoderClusterRolegewährt haben, die Sie an die Gruppennamen oder an den Benutzernamen gebunden haben, die bzw. den Sie für einen Zugriffseintrag angegeben haben. -
Wenn Sie bei der Interaktion mit Kubernetes-Objekten in Ihrem Cluster die Identität eines Kubernetes-Benutzers oder einer Kubernetes-Gruppe annehmen, beispielsweise indem Sie den Befehl
kubectlmit--asoderusername--as-groupverwenden, erzwingen Sie die Verwendung der Kubernetes RBAC-Autorisierung. Daher werden dem IAM-Prinzipal keine Berechtigungen durch eine Zugriffsrichtlinie zugewiesen, die dem Zugriffseintrag zugeordnet ist. Die einzigen Kubernetes-Berechtigungen, über die der Benutzer oder die Gruppe verfügt, dessen bzw. deren Identität der IAM-Prinzipal angenommen hat, sind die Kubernetes-Berechtigungen, die Sie in Kubernetes-Objekten vom Typgroup-nameRoleoderClusterRolegewährt haben, die von Ihnen an die Gruppennamen oder an den Benutzernamen gebunden wurden. Damit Ihr IAM-Prinzipal über die Berechtigungen in den zugehörigen Zugriffsrichtlinien verfügt, dürfen Sie sich nicht als Kubernetes-Benutzer oder -Gruppe ausgeben. Der IAM-Prinzipal verfügt auch weiterhin über alle Berechtigungen, die Sie ihm in den Kubernetes-Objekten vom TypRoleoderClusterRolegewährt haben, die Sie an die Gruppennamen oder an den Benutzernamen gebunden haben, die bzw. den Sie für den Zugriffseintrag angegeben haben. Weitere Informationen finden Sie unter Benutzeridentitätswechselin der Kubernetes-Dokumentation.
Sie können die AWS-Managementkonsole oder die AWS CLI verwenden, um eine Zugriffsrichtlinie einem Zugriffseintrag zuzuordnen.
AWS-Managementkonsole
-
Öffnen Sie die Amazon-EKS-Konsole
. -
Wählen Sie den Namen des Clusters aus, der über einen Zugriffseintrag verfügt, dem Sie eine Zugriffsrichtlinien zuordnen möchten.
-
Wählen Sie die Registerkarte Zugriff aus.
-
Wenn es sich um einen Zugriffseintrag vom Typ Standard handelt, können Sie Zugriffsrichtlinien von Amazon EKS zuordnen oder deren Zuordnung aufheben. Bei Zugriffseinträgen eines anderen Typs (also nicht Standard) steht diese Option nicht zur Verfügung.
-
Wählen Sie Zugriffsrichtlinie zuordnen aus.
-
Wählen Sie unter Richtlinienname die Richtlinie mit den Berechtigungen aus, über die der IAM-Prinzipal verfügen soll. Informationen zu den Berechtigungen, die in der jeweiligen Richtlinie enthalten sind, finden Sie unter Berechtigungen von Zugriffsrichtlinien überprüfen.
-
Wählen Sie unter Zugriffsbereich einen Zugriffsbereich aus. Bei Verwendung der Option Cluster werden die Berechtigungen in der Zugriffsrichtlinie dem IAM-Prinzipal für Ressourcen in allen Kubernetes-Namespaces gewährt. Bei Verwendung der Option Kubernetes-Namespace können Sie anschließend Neuen Namespace hinzufügen auswählen. In dem daraufhin angezeigten Feld Namespace können Sie den Namen eines Kubernetes-Namespace in Ihrem Cluster eingeben. Wenn die Berechtigungen für den IAM-Prinzipal in mehreren Namespaces gelten sollen, können Sie mehrere Namespaces eingeben.
-
Wählen Sie Zugriffsrichtlinie hinzufügen aus.
AWS-CLI
-
Version
2.12.3oder höher oder die Version1.27.160oder höher der AWS-Befehlszeilenschnittstelle (AWS-CLI), die auf Ihrem Gerät oder in AWS CloudShell installiert und konfiguriert sein muss. Um Ihre aktuelle Version zu überprüfen, verwenden Sieaws --version | cut -d / -f2 | cut -d ' ' -f1. Paket-Manager wieyum,apt-getoder Homebrew für macOS sind oft mehrere Versionen hinter der neuesten Version der AWS CLI. Um die neueste Version zu installieren, lesen Sie Installation und Schnellkonfiguration mit aws configure im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle. Die in AWS CloudShell installierte AWS-CLI-Version kann auch mehrere Versionen hinter der neuesten Version liegen. Informationen zum Aktualisieren finden Sie unter Installieren der AWS CLI in Ihrem Stammverzeichnis im AWS-CloudShell-Benutzerhandbuch. -
Sehen Sie sich die verfügbaren Zugriffsrichtlinien an.
aws eks list-access-policies --output tableEine Beispielausgabe sieht wie folgt aus.
--------------------------------------------------------------------------------------------------------- | ListAccessPolicies | +-------------------------------------------------------------------------------------------------------+ || accessPolicies || |+---------------------------------------------------------------------+-------------------------------+| || arn | name || |+---------------------------------------------------------------------+-------------------------------+| || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSAdminPolicy | AmazonEKSAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy | AmazonEKSClusterAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSEditPolicy | AmazonEKSEditPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSViewPolicy | AmazonEKSViewPolicy || |+---------------------------------------------------------------------+-------------------------------+|Informationen zu den Berechtigungen, die in der jeweiligen Richtlinie enthalten sind, finden Sie unter Berechtigungen von Zugriffsrichtlinien überprüfen.
-
Sehen Sie sich Ihre vorhandenen Zugriffseinträge an. Ersetzen Sie
my-clusterdurch den Namen Ihres Clusters.aws eks list-access-entries --cluster-name my-clusterEine Beispielausgabe sieht wie folgt aus.
{ "accessEntries": [ "arn:aws:iam::111122223333:role/my-role", "arn:aws:iam::111122223333:user/my-user" ] } -
Ordnen Sie eine Zugriffsrichtlinie einem Zugriffseintrag zu. Im folgenden Beispiel wird die Zugriffsrichtlinie
AmazonEKSViewPolicyeinem Zugriffseintrag zugeordnet. Wenn die IAM-Rollemy-roleversucht, auf Kubernetes-Objekte im Cluster zuzugreifen, autorisiert Amazon EKS die Rolle nur dazu, die Berechtigungen in der Richtlinie für den Zugriff auf Kubernetes-Objekte in den Kubernetes-Namespacesmy-namespace1undmy-namespace2zu verwenden. Ersetzen Siemy-clusterdurch den Namen Ihres Clusters,111122223333durch Ihre AWS-Konto-ID undmy-roledurch den Namen der IAM-Rolle, für die Amazon EKS den Zugriff auf Kubernetes-Cluster-Objekte autorisieren soll.aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/my-role \ --access-scope type=namespace,namespaces=my-namespace1,my-namespace2 --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicyWenn die Berechtigungen für den IAM-Prinzipal clusterweit gelten sollen, ersetzen Sie
type=namespace,namespaces=durchmy-namespace1,my-namespace2type=cluster. Wenn Sie dem Zugriffseintrag mehrere Zugriffsrichtlinien zuordnen möchten, führen Sie den Befehl mehrmals aus und verwenden Sie dabei jeweils eine individuelle Zugriffsrichtlinie. Jede zugeordnete Zugriffsrichtlinie hat ihren eigenen Geltungsbereich.Anmerkung
Wenn Sie später den Geltungsbereich einer zugehörigen Zugriffsrichtlinie ändern möchten, können Sie den vorherigen Befehl erneut ausführen und dabei den neuen Bereich angeben. Wenn Sie also beispielsweise
my-namespace2entfernen möchten, führen Sie den Befehl erneut aus und verwenden Sie dabei nurtype=namespace,namespaces=. Wenn Sie den Bereich vonmy-namespace1namespaceinclusterändern möchten, führen Sie den Befehl erneut aus und verwenden Sie dabeitype=cluster, umtype=namespace,namespaces=zu entfernen.my-namespace1,my-namespace2 -
Ermitteln Sie, welche Zugriffsrichtlinien einem Zugriffseintrag zugeordnet sind.
aws eks list-associated-access-policies --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/my-roleEine Beispielausgabe sieht wie folgt aus.
{ "clusterName": "my-cluster", "principalArn": "arn:aws:iam::111122223333", "associatedAccessPolicies": [ { "policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy", "accessScope": { "type": "cluster", "namespaces": [] }, "associatedAt": "2023-04-17T15:25:21.675000-04:00", "modifiedAt": "2023-04-17T15:25:21.675000-04:00" }, { "policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy", "accessScope": { "type": "namespace", "namespaces": [ "my-namespace1", "my-namespace2" ] }, "associatedAt": "2023-04-17T15:02:06.511000-04:00", "modifiedAt": "2023-04-17T15:02:06.511000-04:00" } ] }Im vorherigen Beispiel verfügt der IAM-Prinzipal für diesen Zugriffseintrag über Leseberechtigungen für alle Namespaces im Cluster und über Administratorberechtigungen für zwei Kubernetes-Namespaces.
-
Heben Sie die Zuordnung zwischen einer Zugriffsrichtlinie und einem Zugriffseintrag auf. In diesem Beispiel wird die Zuordnung zwischen der Richtlinie
AmazonEKSAdminPolicyund einem Zugriffseintrag aufgehoben. Die in der ZugriffsrichtlinieAmazonEKSViewPolicyenthaltenen Berechtigungen für Objekte in den Namespacesmy-namespace1undmy-namespace2bleiben für den IAM-Prinzipal allerdings erhalten, da die Zuordnung zwischen dieser Zugriffsrichtlinie und dem Zugriffseintrag nicht aufgehoben wird.aws eks disassociate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/my-role \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy
Eine Liste der verfügbaren Zugriffsrichtlinien finden Sie unter Berechtigungen von Zugriffsrichtlinien überprüfen.