Amazon-EKS-Konnektor-IAM-Rolle - Amazon EKS

Amazon-EKS-Konnektor-IAM-Rolle

Sie können Kubernetes-Cluster verbinden, um sie in Ihrem AWS Management Console anzuzeigen. Um eine Verbindung zu einem Kubernetes-Cluster herzustellen, erstellen Sie eine IAM-Rolle.

Überprüfen auf eine vorhandene Konnektor-Rolle

Mit dem folgenden Verfahren können Sie feststellen, ob Ihr Konto bereits über die Amazon-EKS-Konnektorrolle verfügt.

So prüfen Sie AmazonEKSConnectorAgentRole in der IAM-Konsole

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Suchen Sie in der Liste der Rollen nach AmazonEKSConnectorAgentRole. Wenn keine Rolle mit AmazonEKSConnectorAgentRole vorhanden ist, informieren Sie sich unter Erstellen der Rolle des Amazon-EKS-Connector-Agenten, wie Sie die Rolle erstellen können. Wenn eine Rolle mit AmazonEKSConnectorAgentRole vorhanden ist, wählen Sie die Rolle aus, um die angefügten Richtlinien anzuzeigen.

  4. Wählen Sie Permissions (Berechtigungen).

  5. Stellen Sie sicher, dass die von AmazonEKSClusterPolicy verwaltete Richtlinie an die Rolle angefügt ist. Wenn die Richtlinie angefügt ist, ist Ihre Amazon-EKS-Clusterrolle korrekt konfiguriert.

  6. Wählen Sie Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.

  7. Überprüfen Sie, dass die Vertrauensstellung die folgende Richtlinie enthält. Wenn die Vertrauensstellung mit der folgenden Richtlinie übereinstimmt, wählen Sie Cancel (Abbrechen) aus. Andernfalls kopieren Sie die Richtlinie in das Fenster Edit trust policy (Vertrauensrichtlinie bearbeiten) und wählen Sie Update policy (Richtlinie aktualisieren) aus.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Erstellen der Rolle des Amazon-EKS-Connector-Agenten

Sie können die AWS Management Console oder AWS CloudFormation zur Erstellung der Konnektor-Agentenrolle verwenden. Wählen Sie die Registerkarte mit dem Namen des Tools aus, das Sie zum Erstellen der Rolle verwenden möchten.

AWS CLI
  1. Erstellen Sie eine Datei mit dem Namen eks-connector-agent-trust-policy.json, die die folgende JSON enthält, die für die IAM-Rolle verwendet werden soll.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. Erstellen Sie eine Datei mit dem Namen eks-connector-agent-policy.json, die die folgende JSON enthält, die für die IAM-Rolle verwendet werden soll.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SsmControlChannel", "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel" ], "Resource": "arn:aws:eks:*:*:cluster/*" }, { "Sid": "ssmDataplaneOperations", "Effect": "Allow", "Action": [ "ssmmessages:CreateDataChannel", "ssmmessages:OpenDataChannel", "ssmmessages:OpenControlChannel" ], "Resource": "*" } ] }
  3. Erstellen Sie die Agentenrolle von Amazon EKS Connector mithilfe der Vertrauensrichtlinie und Richtlinie, die Sie in den vorherigen Listenelementen erstellt haben.

    aws iam create-role \ --role-name AmazonEKSConnectorAgentRole \ --assume-role-policy-document file://eks-connector-agent-trust-policy.json
  4. Hängen Sie die Richtlinie an Ihre Amazon-EKS-Connector-Agentenrolle an.

    aws iam put-role-policy \ --role-name AmazonEKSConnectorAgentRole \ --policy-name AmazonEKSConnectorAgentPolicy \ --policy-document file://eks-connector-agent-policy.json
AWS CloudFormation

So erstellen Sie die Rolle des Amazon-EKS-Connector-Agenten mit AWS CloudFormation.

  1. Speichern Sie die folgende AWS CloudFormation-Vorlage in einer Textdatei auf Ihrem lokalen System.

    Anmerkung

    Diese Vorlage erstellt auch die mit dem Service verknüpfte Rolle, die andernfalls beim Aufruf der registerCluster-API erstellt würde. Details dazu finden Sie unter Verbinden eines Kubernetes-Clusters mithilfe von Rollen mit Amazon EKS.

    --- AWSTemplateFormatVersion: '2010-09-09' Description: 'Provisions necessary resources needed to register clusters in EKS' Parameters: {} Resources: EKSConnectorSLR: Type: AWS::IAM::ServiceLinkedRole Properties: AWSServiceName: eks-connector.amazonaws.com EKSConnectorAgentRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: [ 'sts:AssumeRole' ] Principal: Service: 'ssm.amazonaws.com' EKSConnectorAgentPolicy: Type: AWS::IAM::Policy Properties: PolicyName: EKSConnectorAgentPolicy Roles: - {Ref: 'EKSConnectorAgentRole'} PolicyDocument: Version: '2012-10-17' Statement: - Effect: 'Allow' Action: [ 'ssmmessages:CreateControlChannel' ] Resource: - Fn::Sub: 'arn:${AWS::Partition}:eks:*:*:cluster/*' - Effect: 'Allow' Action: [ 'ssmmessages:CreateDataChannel', 'ssmmessages:OpenDataChannel', 'ssmmessages:OpenControlChannel' ] Resource: "*" Outputs: EKSConnectorAgentRoleArn: Description: The agent role that EKS connector uses to communicate with AWS-Services. Value: !GetAtt EKSConnectorAgentRole.Arn
  2. Öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation.

  3. Klicken Sie auf Erstellen eines Stacks (entweder mit neuen Ressourcen oder vorhandenen Ressourcen.

  4. Wählen Sie für Specify template (Vorlage festlegen) Upload a template file (Vorlagendatei hochladen) aus und wählen Sie dann Choose file (Datei wählen).

  5. Wählen Sie die zuvor erstellte Datei und klicken Sie dann auf Next (Weiter).

  6. Geben Sie für Stack name (Stack-Name) einen Namen für Ihre Rolle ein, wie z. B. eksConnectorAgentRole. Klicken Sie dann auf Next (Weiter).

  7. Wählen Sie auf der Seite Configure stack options (Stack-Optionen konfigurieren) Next (Weiter) aus.

  8. Überprüfen Sie auf der Seite Überprüfen Ihre Informationen, bestätigen Sie, dass der Stack IAM-Ressourcen erstellen kann, und wählen Sie dann Erstellen aus.