Beispiele für identitätsbasierte Amazon-EKS-Richtlinien - Amazon EKS

Beispiele für identitätsbasierte Amazon-EKS-Richtlinien

Standardmäßig haben IAM-Benutzer und -Rollen nicht die Berechtigung, Amazon-EKS-Ressourcen zu erstellen oder zu ändern. Sie können auch keine Aufgaben mithilfe der AWS Management Console, AWS CLI oder AWS-API ausführen. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern und Rollen die Berechtigung zum Ausführen bestimmter API-Operationen für die angegebenen Ressourcen gewähren, die diese benötigen. Der Administrator muss diese Richtlinien anschließend den IAM-Benutzern oder -Gruppen anfügen, die diese Berechtigungen benötigen.

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eine identitätsbasierte IAM-Richtlinie erstellen, finden Sie unter Erstellen von Richtlinien auf der JSON-Registerkarte im IAM-Benutzerhandbuch.

Wenn Sie einen Amazon EKS-Cluster erstellen, werden dem Benutzer oder der Rolle der IAM-Entität, z. B. einem Verbundbenutzer, der den Cluster erstellt, automatisch system:masters-Berechtigungen in der RBAC-Konfiguration des Clusters in der Steuerungsebene erteilt. Diese IAM-Entität wird weder in der ConfigMap noch in einer anderen sichtbaren Konfiguration angezeigt. Achten Sie daher darauf, welche IAM-Entität den Cluster ursprünglich erstellt hat. Um zusätzlichen AWS-Benutzern oder -Rollen die Fähigkeit zur Interaktion mit Ihrem Cluster zu erteilen, müssen Sie die aws-auth-ConfigMap innerhalb von Kubernetes bearbeiten.

Weitere Informationen zum Arbeiten mit der ConfigMap finden Sie unter Verwalten von Benutzern oder IAM-Rollen für Ihren Cluster.

Bewährte Methoden für Richtlinien

Identitätsbasierte Richtlinien sind sehr leistungsfähig. Sie bestimmen, ob jemand Amazon-EKS-Ressourcen in Ihrem Konto erstellen, aufrufen oder löschen kann. Dies kann zusätzliche Kosten für Ihr AWS-Konto verursachen. Befolgen Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Anleitungen und Empfehlungen:

  • Starten Sie mit AWS verwalteten Richtlinien – Um Amazon EKS schnell zu nutzen, verwenden Sie AWS verwaltete Richtlinien, um Ihren Mitarbeitern die erforderlichen Berechtigungen zu erteilen. Diese Richtlinien sind bereits in Ihrem Konto verfügbar und werden von gewartet und aktualisier AWS. Weitere Informationen finden Sie unter Erste Schritte zur Verwendung von Berechtigungen mit von AWS verwalteten Richtlinien im IAM-Benutzerhandbuch.

  • Gewähren von geringsten Rechten – Gewähren Sie beim Erstellen benutzerdefinierter Richtlinien nur die Berechtigungen, die zum Ausführen einer Aufgabe erforderlich sind. Beginnen Sie mit einem Mindestsatz von Berechtigungen und gewähren Sie zusätzliche Berechtigungen wie erforderlich. Dies ist sicherer, als mit Berechtigungen zu beginnen, die zu weit gefasst sind, und dann später zu versuchen, sie zu begrenzen. Weitere Informationen finden Sie unter Gewähren von geringsten Rechten im IAM-Benutzerhandbuch.

  • Aktivieren von MFA für sensible Vorgänge – Fordern Sie von IAM-Benutzern die Verwendung von Multi-Factor Authentication (MFA), um zusätzliche Sicherheit beim Zugriff auf sensible Ressourcen oder API-Operationen zu bieten. Weitere Informationen finden Sie unter Verwenden der Multi-Faktor-Authentifizierung (MFA) in AWS im IAM-Benutzerhandbuch.

  • Verwenden von Richtlinienbedingungen für zusätzliche Sicherheit – Definieren Sie die Bedingungen, unter denen Ihre identitätsbasierten Richtlinien den Zugriff auf eine Ressource zulassen, soweit praktikabel. Beispielsweise können Sie Bedingungen schreiben, die eine Reihe von zulässigen IP-Adressen festlegen, von denen eine Anforderung stammen muss. Sie können auch Bedingungen schreiben, die Anforderungen nur innerhalb eines bestimmten Datums- oder Zeitbereichs zulassen oder die Verwendung von SSL oder MFA fordern. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.

Verwenden der Amazon-EKS-Konsole

Um auf die Amazon-EKS-Konsole zugreifen zu können, müssen Sie über einen Mindestsatz von Berechtigungen verfügen. Diese Berechtigungen müssen es Ihnen ermöglichen, Details über die Amazon-EKS-Ressourcen in Ihrem AWS-Konto aufzulisten und anzuzeigen. Wenn Sie eine identitätsbasierte Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Entitäten (IAM-Benutzer oder -Rollen) mit dieser Richtlinie.

Wichtig

Wenn in der Konsole ein Fehler beim Laden von Namespaces angezeigt wird oder auf den Registerkarten Übersicht oder Workloads nichts angezeigt wird, lesen Sie Arbeitslasten oder Knoten können nicht angezeigt werden und ein Fehler in derAWS Management Console, um das Problem zu beheben. Wenn Sie das Problem nicht beheben, können Sie weiterhin Aspekte Ihres Amazon EKS-Clusters auf der Registerkarte Konfiguration anzeigen und verwalten.

Um sicherzustellen, dass diese Entitäten die Amazon-EKS-Konsole weiterhin verwenden können, erstellen Sie eine Richtlinie mit Ihrem eigenen eindeutigen Namen, z. B. AmazonEKSAdminPolicy. Fügen Sie die Richtlinie an die Entitäten an. Weitere Informationen finden Sie unter Hinzufügen von Berechtigungen zu einem Benutzer im IAM-Benutzerhandbuch.

Wichtig

Mit der folgenden Beispielrichtlinie können Sie Informationen auf der Registerkarte Konfiguration in der Konsole anzeigen. Um Informationen zu den Knoten und Workloads in der AWS Management Console anzuzeigen, benötigen Sie zusätzliche IAM-Berechtigungen sowie Kubernetes-Berechtigungen. Weitere Informationen finden Sie in der Knoten und Workloads für alle Cluster im AWS Management Console anzeigen-Beispielrichtlinie.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "eks.amazonaws.com" } } } ] }

Für Benutzer, die nur Aufrufe an die AWS CLI oder AWS-API durchführen, müssen Sie keine Mindestberechtigungen in der Konsole erteilen. Stattdessen sollten Sie nur Zugriff auf die Aktionen zulassen, die den API-Operation entsprechen, die Sie ausführen möchten.

Knoten und Workloads für alle Cluster im AWS Management Console anzeigen

Dieses Beispiel zeigt, wie Sie eine Richtlinie erstellen können, die einem Benutzer View-Knoten und Anzeigen von Workloads für alle Cluster erlaubt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:DescribeCluster", "eks:ListClusters", "eks:AccessKubernetesApi", "ssm:GetParameter", "eks:ListUpdates", "eks:ListFargateProfiles" ], "Resource": "*" } ] }
Wichtig

Die Richtlinie muss an einen Benutzer oder eine Rolle angehängt werden, die in der aws-auth configmap einem Kubernetes-Benutzer oder einer Kubernetes-Gruppe zugeordnet ist. Der Benutzer oder die Gruppe muss ein subject in einem rolebinding oder clusterrolebinding sein, das an ein Kubernetes role oder clusterrole gebunden ist, das über die erforderlichen Berechtigungen zum Anzeigen der Kubernetes-Ressourcen verfügt. Weitere Informationen zum Hinzufügen von IAM-Benutzern oder -Rollen zur configmap aws-auth finden Sie unter Verwalten von Benutzern oder IAM-Rollen für Ihren Cluster. Informationen zum Erstellen von Rollen und Rollenbindungen finden Sie unter Using RBAC Authorization in der Kubernetes-Dokumentation. Sie können die folgenden Beispielmanifeste herunterladen, die ein clusterrole und clusterrolebinding oder ein role und rolebinding erstellen:

  • Kubernetes-Ressourcen in allen Namespaces anzeigen – Der Gruppenname in der Datei ist eks-console-dashboard-full-access-group, dies ist die Gruppe, der Ihr IAM-Benutzer oder Ihre IAM-Rolle in der aws-auth-Konfigurationszuordnung zugeordnet werden muss. Sie können den Namen der Gruppe bei Bedarf ändern, bevor Sie ihn auf Ihren Cluster anwenden, und dann Ihren IAM-Benutzer oder Ihre IAM-Rolle dieser Gruppe in der configmap zuordnen. Um die Datei herunterzuladen, wählen Sie den entsprechenden Link für die Region aus, in der sich Ihr Cluster befindet.

  • Kubernetes-Ressourcen in einem bestimmten Namespace anzeigen – Der Namespace in dieser Datei ist default, wenn Sie also einen anderen Namespace angeben möchten, bearbeiten Sie die Datei, bevor Sie sie auf Ihren Cluster anwenden. Der Gruppenname in der Datei ist eks-console-dashboard-restricted-access-group, dies ist die Gruppe, der Ihr IAM-Benutzer oder Ihre IAM-Rolle in der aws-auth-Konfigurationszuordnung zugeordnet werden muss. Sie können den Namen der Gruppe bei Bedarf ändern, bevor Sie ihn auf Ihren Cluster anwenden, und dann Ihren IAM-Benutzer oder Ihre IAM-Rolle dieser Gruppe in der configmap zuordnen. Um die Datei herunterzuladen, wählen Sie den entsprechenden Link für die Region aus, in der sich Ihr Cluster befindet.

Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zum Anzeigen der eingebundenen Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügt sind. Diese Richtlinie enthält Berechtigungen für die Ausführung dieser Aktion auf der Konsole oder für die programmgesteuerte Ausführung über die AWS CLI oder die AWS-API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Aktualisieren eines Kubernetes-Clusters

Das folgende Beispiel zeigt, wie Sie eine Richtlinie erstellen, mit der ein Benutzer die Kubernetes-Version eines dev-Clusters für ein Konto in einer beliebigen Region aktualisieren kann.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:UpdateClusterVersion", "Resource": "arn:aws:eks:*:<111122223333>:cluster/<dev>" } ] }

Auflisten oder Beschreiben aller Cluster

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, mit der ein Benutzer schreibgeschützten Zugriff zum Auflisten oder Beschreiben aller Cluster erhält. Ein Konto muss in der Lage sein, Cluster aufzulisten und zu beschreiben, damit der update-kubeconfig-Befehl AWS CLI verwendet werden kann.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*" } ] }