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.
Authentifizierung bei Amazon EKS-Zugangseinträgen
Amazon EKS unterstützt zwei Mechanismen, um einem IAM-Prinzipal die Erlaubnis zum Aufrufen der Kubernetes Cluster-API zu erteilen: die alte aws-auth ConfigMap und die neuere Zugriffs-Eingabe-API. Ein Zugriffseintrag gewährt Kubernetes API-Zugriff auf einen IAM-Prinzipal, ohne dass Sie einen bearbeiten müssen. ConfigMap AWS Batch kann sich über einen der beiden Mechanismen bei Ihrem Cluster authentifizieren.
Wenn Sie dies eksConfiguration.accessEntry.desiredState in ENABLED einer Rechenumgebung einstellen, AWS Batch können Sie den Zugriffseintrag für diese Rechenumgebung im Cluster verwalten. Sie müssen das nicht mehr manuell bearbeiten aws-auth ConfigMap.
Ob ein AWS Batch Zugriffseintrag bereitgestellt wird, hängt von Ihrer AWS Batch Rechenumgebung und Ihrer Amazon EKS-Cluster-Konfiguration ab. Details dazu finden Sie unter Interaktion mit dem AuthenticationMode des Clusters .
Werte für den Zugriff Entry.desiredState
Das desiredState Feld on EksAccessEntry deklariert den gewünschten Zugriffsstatus für die Rechenumgebung. Folgende sind gültige Werte:
ENABLED-
AWS Batch erstellt einen AWS Batch verwalteten Zugriffseintrag auf dem Cluster für die Computerumgebung. AWS Batch erstellt nur dann einen AWS Batch-managed-Access-Eintrag, wenn alle Computerumgebungen im Cluster auf auf eingestellt
desiredStatesindENABLED(weitere Informationen finden Sie unterWie AWS Batch gleicht DesiredState in allen Computerumgebungen ab). DISABLED-
AWS Batch löscht den Eintrag AWS Batch-managed Access für den Cluster. AWS Batch löscht einen AWS Batch-managed-Access-Eintrag nur, wenn alle Rechenumgebungen auf dem Cluster auf auf eingestellt
desiredStatesindDISABLED(weitere Informationen finden Sie unterWie AWS Batch gleicht DesiredState in allen Computerumgebungen ab). Der Zugriff auf den Cluster muss über denaws-authConfigMap konfiguriert werden. INHERIT_FROM_CLUSTER-
AWS Batch bezieht sich auf den aktuellen Zugriffseintrag
statusdes Clusters. Auf einem Amazon EKS-Cluster, dessen Authentifizierungsmodus istAPI, wird ein Zugriffseintrag AWS Batch erstellt und verwaltet, da der Clusteraws-authConfigMap auf keinen zurückgreifen kann. Auf einem Cluster, dessen AuthentifizierungsmodusCONFIG_MAPoder istAPI_AND_CONFIG_MAP, wird AWS Batch weder ein Zugriffseintrag hinzugefügt noch entfernt.
Die Rechenumgebung stellt außerdem ein schreibgeschütztes accessEntry.status Feld in Antworten zur Verfügung. DescribeComputeEnvironments ACTIVEbedeutet, dass auf dem Cluster ein Eintrag mit AWS Batch verwaltetem Zugriff für die Rechenumgebung vorhanden ist und Vorrang vor dem hat. aws-auth ConfigMap INACTIVEbedeutet, dass kein Eintrag für AWS Batch-managed Access vorhanden ist. Dies kann daran liegenDISABLED, dass desiredState sich die Computerumgebungen, die auf den Cluster abzielendesiredState, noch nicht einig sind oder dass der Eintrag noch nicht bereitgestellt wurde. Wenn jaINACTIVE, accessEntry.status verwendet Batch es aws-auth ConfigMap für den Clusterzugriff.
Anmerkung
Ein Zugriffseintrag wird gemeldet, ACTIVE sobald er im Cluster vorhanden ist, auch wenn die Zuordnung der Zugriffsrichtlinie, die ihn nutzbar macht, AWS Batch noch nicht abgeschlossen ist. Wenn sich der Status der Computerumgebung auf INVALID while accessEntry.status is ändertACTIVE, finden Sie weitere Informationen unterDie Einrichtung des Amazon EKS-Zugangseintrags ist unvollständig.
Anmerkung
Wenn Sie das accessEntry Feld weglassen, AWS Batch wird kein A desiredState für die Computerumgebung aufgezeichnet und DescribeComputeEnvironments auch keines zurückgegeben. Verhält sich zum Zweck der Bereitstellung des AWS Batch Zugriffseintrags wie bei. INHERIT_FROM_CLUSTER
Interaktion mit dem AuthenticationMode des Clusters
Wie AWS Batch sich ein bestimmtes Verhalten verhält, desiredState hängt vom Authentifizierungsmodus des Clusters ab. Die folgende Tabelle gilt sowohl für als CreateComputeEnvironment auchUpdateComputeEnvironment.
Cluster |
Umgebung berechnen |
Umgebung berechnen |
Umgebung berechnen |
|---|---|---|---|
|
Access-Einträge sind auf dem Cluster nicht verfügbar, es werden also AWS Batch keine erstellt oder entfernt. AWS Batch zeichnet immer noch den von Ihnen angegebenen Wert auf. Nachdem Sie den Authentifizierungsmodus des Clusters geändert haben, wird dieser aufgezeichnete Wert bei Ihrem nächsten |
||
|
AWS Batch vergleicht die aufgezeichneten Werte in den Computerumgebungen, die den Cluster gemeinsam nutzen — sieheWie AWS Batch gleicht DesiredState in allen Computerumgebungen ab. |
Der bestehende Zugriffsmodus wird beibehalten. AWS Batch fügt keinen Zugriffseintrag hinzu oder entfernt ihn. |
|
|
Der Zugriffseintrag wird auf dem Cluster erstellt und verwaltet. |
Die Anforderung wurde abgelehnt. Ein Cluster in diesem Modus unterstützt das nicht |
Der Zugriffseintrag wird auf dem Cluster erstellt und verwaltet. Wenn der Cluster nur den Wert |
Wie AWS Batch gleicht DesiredState in allen Computerumgebungen ab
Da ein einzelner Amazon EKS-Cluster mehrere AWS Batch Computerumgebungen unterstützen kann, handelt es sich bei der Zugriffskonfiguration eines Clusters um eine gemeinsam genutzte Ressource. AWS Batch gleicht daher die in diesen Computerumgebungen aufgezeichneten desiredState Werte ab oder vergleicht und löst sie auf.
Wenn es authenticationMode sich um den Cluster handeltAPI_AND_CONFIG_MAP, desiredState werden die für jede Rechenumgebung in demselben AWS Konto und derselben AWS Region, die auf den Cluster abzielen, aufgezeichneten Werte AWS Batch verglichen. AWS Batch verwendet diesen Vergleich, um zu ermitteln, ob der Zugriffseintrag für jede der angegebenen UpdateComputeEnvironment Operationen hinzugefügt CreateComputeEnvironment oder entfernt desiredState werden soll.
- Jede Computerumgebung hat
desiredState=ENABLED -
AWS Batch erstellt den Zugriffseintrag auf dem Cluster.
- Jede Computerumgebung hat
desiredState=DISABLED -
AWS Batch löscht den Zugriffseintrag aus dem Cluster, falls einer existiert.
- Die aufgezeichneten
desiredStateWerte stimmen nicht alle überein -
AWS Batch behält den bestehenden Zugriffsmodus bei. Der Zugriffseintrag wird weder hinzugefügt noch entfernt. Dies schließt jede Mischung aus
ENABLED, und einDISABLEDINHERIT_FROM_CLUSTER, und es schließt auch jede Computerumgebung ein, für die keinedesiredStateAufzeichnungen vorliegen.
Anmerkung
Um einen Cluster, dessen Authentifizierungsmodus API_AND_CONFIG_MAP von der Zugangsauthentifizierung ist, auf aws-auth ConfigMap die Zugangsauthentifizierung umzustellen, müssen Sie diese Einstellung in jeder AWS Batch Computerumgebung einrichten, die desiredState=ENABLED auf den Cluster abzielt. Um zurück zu wechseln, setzen Sie diese desiredState=DISABLED Option auf jedem einzelnen von ihnen ein.
Was AWS Batch erstellt auf Ihrem Cluster
AWS Batch erstellt einen Zugriffseintrag pro Cluster, der die oben genannten Bedingungen erfüllt, und ordnet dann diesem Zugriffseintrag die AWSBatchClusterPolicy Amazon EKS-Zugriffsrichtlinie zu. Der Zugriffseintrag gilt pro Cluster und nicht pro Rechenumgebung, sodass ihn alle AWS Batch Computerumgebungen, die auf denselben Cluster abzielen, gemeinsam nutzen.
Anmerkung
Durch das Löschen einer Rechenumgebung wird der Zugriffseintrag nicht entfernt, auch wenn es sich um die letzte AWS Batch Rechenumgebung im Cluster handelt. Um einen Eintrag mit AWS Batch verwaltetem Zugriff zu entfernen, rufen Sie UpdateComputeEnvironment with in jeder AWS Batch Computerumgebung desiredState=DISABLED auf, die auf den Cluster abzielt, bevor Sie sie löschen.
Ein Zugriffseintrag allein reicht nicht aus, um Jobs auf dem Cluster auszuführen. Die Kubernetes Berechtigungen und den Knotenzugriff, die Sie selbst konfigurieren müssen, finden Sie unterCluster-Konfiguration, die Sie weiterhin angeben müssen.
Erforderliche Berechtigungen
AWS Batch verwaltet den Zugriffseintrag mithilfe der Anmeldeinformationen der IAM-Identität, die den CreateComputeEnvironment UpdateComputeEnvironment OR-Vorgang aufruft. Diese Identität muss berechtigt sein, die folgenden Amazon EKS-Aktionen auszuführen:
-
eks:DescribeCluster -
eks:DescribeAccessEntry -
eks:CreateAccessEntry -
eks:AssociateAccessPolicy -
eks:DeleteAccessEntry
Konfigurieren Sie den Zugriffseintrag
Sie können den Zugriffseintrag in einer Computerumgebung über das eksConfiguration.accessEntry Feld der CreateComputeEnvironment oder UpdateComputeEnvironment API konfigurieren.
Cluster-Konfiguration, die Sie weiterhin angeben müssen
Ein Zugriffseintrag steuert nur, wie Sie sich bei Ihrem Cluster AWS Batch authentifizieren. Er gewährt nicht AWS Batch die Kubernetes Berechtigungen, die für die Ausführung Ihrer Jobs erforderlich sind, und er verhindert, dass die Instances, die AWS Batch gestartet werden, dem Cluster beitreten. Unabhängig davon, welchen Authentifizierungsmechanismus Sie verwenden, müssen Sie dennoch die beiden folgenden Optionen konfigurieren.
Wichtig
Sobald ein Eintrag AWS Batch für den verwalteten Zugriff für die AWS Batch service-verknüpfte Rolle auf einem Cluster (accessEntry.status=ACTIVE) erstellt wurde, hat er Vorrang vor der aws-auth ConfigMap Konfiguration für die Rolle. Die ConfigMap Einträge für die AWS Batch dienstverknüpfte Rolle werden nicht verwendet. Die AWS Batch Authentifizierung erfolgt stattdessen mithilfe des Zugriffseintrags. Um zur ConfigMap Authentifizierung zurückzukehren, setzen Sie diese Option in allen Computerumgebungen ein, die desiredState=DISABLED auf den Cluster abzielen. Dadurch wird der Eintrag AWS Batch-managed Access entfernt.
- KubernetesBerechtigungen für den Namespace AWS Batch
-
AWS Batch benötigt Kubernetes Berechtigungen, um Pods in dem Namespace zu erstellen und zu verwalten, den Sie angeben.
eksConfiguration.kubernetesNamespaceErstellen Sie den Namespace und konfigurieren Sie diese Berechtigungen dann je nach Ihrem Authentifizierungsansatz mit einer der folgenden Methoden:-
Zugriffsrichtlinienzuordnung (bei Zugriffseingabe erforderlich
status=ACTIVE) — Wenn Sie alle Computerumgebungen für einen Cluster aktivieren, AWS Batch wird ein Zugriffseintrag aufAWSBatchClusterPolicyClusterebene erstellt.desiredState=ENABLEDAnschließend müssen Sie den Namespace-Bereich zuordnen, um die Berechtigung zum Erstellen und Verwalten von PodsAWSBatchNamespacePolicyzu gewähren. AWS BatchWenn der Zugriffseintrag erreicht ist
status=ACTIVE, verknüpfen Sie die Namespace-Richtlinie mithilfe von: AWS CLI$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AWSBatchNamespacePolicy \ --access-scope type=namespace,namespaces=my-aws-batch-namespaceErsetzen Sie
my-aws-batch-namespacedurch den Wert, den Sie ineksConfiguration.kubernetesNamespaceangegeben haben.Wichtig
Ohne die Richtlinienzuordnung mit Namespace-Gültigkeitsbereich bleiben Jobs im Status hängen.
RUNNABLEDie Richtlinie auf Clusterebene allein gewährt keine Pod-Verwaltungsberechtigungen. -
KubernetesRollen und Rollenbindungen (beim Zugriffseintrag
status=INACTIVE) — Wenn der Eintrag AWS Batch-managed access nicht aktiv ist, erstellen Sie die Kubernetes Rollen und Rollenbindungen, die diese Berechtigungen gewähren, wie unter beschrieben. Schritt 2: Bereiten Sie Ihren Amazon EKS-Cluster vor für AWS Batch Sie tun dies einmal für jeden Cluster.Anmerkung
Wenn ein AWS Batch-managed Access-Eintrag aktiv ist (
status=ACTIVE), werden die Kubernetes RBAC-Rollen umgangen. Sie müssen stattdessen die Zugriffsrichtlinien-Zuordnungsmethode verwenden.
AWS Batch erstellt diese Ressourcen nicht für Sie, und ein AWS Batch-managed Access-Eintrag ersetzt sie nicht. Wenn sie fehlen, kann die Rechenumgebung trotzdem dazu führen, dass Ihre Jobs nicht gestartet werden
VALID. -
- Cluster-Zugriff für die Node-Instance-Rolle
-
Instanzen, die AWS Batch gestartet werden, treten dem Cluster mithilfe des Instanzprofils bei, das Sie in angeben
computeResources.instanceRole. Diese Rolle benötigt ihren eigenen Zugriff auf den Cluster, der vom Eintrag AWS Batch-managed Access getrennt ist und AWS Batch nicht konfiguriert werden kann.Die Konfigurationsmethode hängt von Ihrem Cluster ab:
authenticationMode-
Bei Clustern, deren
authenticationModeWertCONFIG_MAP— Sie müssen den verwendenaws-authConfigMap. Access-Einträge werden auf diesen Clustern nicht unterstützt. -
Auf Clustern, deren
authenticationModeAPI_AND_CONFIG_MAPName — Die Knoteninstanzrolle kann sich entweder mit demaws-authConfigMap oder einem Zugriffseintrag authentifizieren. Wenn die Instanzrolle bereits in der zugeordnet ist, werden die Knoten erfolgreich hinzugefügt ConfigMap, ohne dass ein Zugriffseintrag für die Rolle erstellt wird. -
Bei Clustern, deren
authenticationModeName lautetAPI— Sie müssen einen Zugriffseintrag für die Knoteninstanzrolle erstellen. Deraws-authConfigMap wird nicht für die Authentifizierung auf diesen Clustern verwendet.
Um einen Zugriffseintrag für die Node-Instance-Rolle zu erstellen, verwenden Sie AWS CLI:
$aws eks create-access-entry \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --type EC2_LINUX$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSWorkerNodePolicy \ --access-scope type=clusterWeitere Informationen finden Sie unter Erstellen von Zugriffseinträgen im Amazon EKS-Benutzerhandbuch .
Wichtig
Ohne den richtigen Clusterzugriff für die Node-Instance-Rolle können EC2-Instances dem Cluster nicht beitreten. Jobs bleiben im
RUNNABLEStatus, da keine Kapazität im Cluster registriert ist. -
Wählen Sie zwischen den Einträgen aws-auth und access ConfigMap
Die Zugriffsauthentifizierung ist die empfohlene Methode für neue AWS Batch Amazon EKS-Rechenumgebungen und bietet die folgenden Vorteile:
-
Macht es überflüssig, das manuell zu bearbeiten
aws-authConfigMap , um den AWS Batch Zugriff auf den Cluster zu gewähren. -
Stellt eine überprüfbare API-driven Aufzeichnung der Principals bereit, die Zugriff auf den Cluster haben.
-
Ist für Cluster erforderlich, deren
authenticationModeName istAPI, die den nicht unterstützen.aws-authConfigMap
Wenn der Ihres Clusters vorhanden authenticationMode istCONFIG_MAP, sind die Zugriffseinträge nicht verfügbar und AWS Batch die Authentifizierung erfolgt über den aws-auth ConfigMap. Detaillierte Anweisungen finden Sie unter Stellen Sie sicher, dass die aws-auth korrekt konfiguriert ist ConfigMap.