View a markdown version of this page

Erste Schritte mit AWS DevOps Agent using AWS CloudFormation - AWS DevOps Agentin

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.

Erste Schritte mit AWS DevOps Agent using AWS CloudFormation

-Übersicht

In diesem Handbuch erfahren Sie, wie Sie mithilfe von AWS CloudFormation Vorlagen AWS DevOps Agentenressourcen erstellen und bereitstellen. Die Vorlagen automatisieren die Erstellung eines Agentenbereichs, AWS Identitäts- und Zugriffsmanagement-Rollen (IAM), einer Operator-App und AWS Kontozuordnungen als Infrastruktur als Code.

Der CloudFormation Ansatz automatisiert die im CLI-Onboarding-Leitfaden beschriebenen manuellen Schritte, indem alle erforderlichen Ressourcen in deklarativen YAML-Vorlagen definiert werden.

AWS DevOps Der Agent ist in den folgenden 6 AWS Regionen verfügbar: USA Ost (Nord-Virginia), USA West (Oregon), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Europa (Frankfurt) und Europa (Irland). Weitere Informationen zu den unterstützten Regionen finden Sie unterUnterstützte Regionen.

Voraussetzungen

Stellen Sie vor dem Beginn sicher, dass Sie über Folgendes verfügen:

  • AWS Die Befehlszeilenschnittstelle (AWS CLI) wurde mit den entsprechenden Anmeldeinformationen installiert und konfiguriert

  • Berechtigungen zum Erstellen von IAM-Rollen und CloudFormation -Stacks

  • Ein AWS Konto für das (primäre) Überwachungskonto

  • (Optional) Ein zweites AWS Konto, wenn Sie eine kontoübergreifende Überwachung einrichten möchten

Worum geht es in diesem Leitfaden

Dieser Leitfaden ist in zwei Teile gegliedert:

  • Teil 1 — Stellen Sie einen Agentenbereich mit einer Operator-App und einer AWS Verknüpfung in Ihrem Monitoring-Konto bereit. Nachdem Sie diesen Teil abgeschlossen haben, kann der Agent Probleme in diesem Konto überwachen.

  • Teil 2 (optional) — Stellen Sie eine kontoübergreifende IAM-Rolle in einem sekundären Konto bereit und fügen Sie eine AWS Quellenzuordnung hinzu. Diese Konfiguration ermöglicht es dem Agentenbereich, Ressourcen kontenübergreifend zu überwachen.

Teil 1: Stellen Sie den Agentenbereich bereit

In diesem Abschnitt erstellen Sie eine CloudFormation Vorlage, die den Agentenbereich, die IAM-Rollen, die Operator-App und eine AWS Zuordnung in Ihrem Monitoring-Konto bereitstellt.

Schritt 1: Erstellen Sie die Vorlage CloudFormation

Speichern Sie die folgende Vorlage unterdevops-agent-stack.yaml:

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Agent Space with IAM roles, operator app, and AWS association Parameters: AgentSpaceName: Type: String Default: MyCloudFormationAgentSpace Description: Name for the agent space AgentSpaceDescription: Type: String Default: Agent space deployed with CloudFormation Description: Description for the agent space Resources: # IAM role assumed by the DevOps Agent service to monitor the account DevOpsAgentSpaceRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-AgentSpace AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: sts:AssumeRole Condition: StringEquals: aws:SourceAccount: !Ref AWS::AccountId ArnLike: aws:SourceArn: !Sub arn:aws:aidevops:${AWS::Region}:${AWS::AccountId}:agentspace/* ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy Policies: - PolicyName: AllowCreateServiceLinkedRoles PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowCreateServiceLinkedRoles Effect: Allow Action: - iam:CreateServiceLinkedRole Resource: - !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer # IAM role for the operator app interface DevOpsOperatorRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-WebappAdmin AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: - sts:AssumeRole - sts:TagSession Condition: StringEquals: aws:SourceAccount: !Ref AWS::AccountId ArnLike: aws:SourceArn: !Sub arn:aws:aidevops:${AWS::Region}:${AWS::AccountId}:agentspace/* ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsOperatorAppAccessPolicy # The agent space resource AgentSpace: Type: AWS::DevOpsAgent::AgentSpace DependsOn: - DevOpsAgentSpaceRole - DevOpsOperatorRole Properties: Name: !Ref AgentSpaceName Description: !Ref AgentSpaceDescription OperatorApp: Iam: OperatorAppRoleArn: !GetAtt DevOpsOperatorRole.Arn # Association linking the monitoring account to the agent space MonitorAssociation: Type: AWS::DevOpsAgent::Association Properties: AgentSpaceId: !GetAtt AgentSpace.AgentSpaceId ServiceId: aws Configuration: Aws: AssumableRoleArn: !GetAtt DevOpsAgentSpaceRole.Arn AccountId: !Ref AWS::AccountId AccountType: monitor Outputs: AgentSpaceId: Description: The agent space ID Value: !GetAtt AgentSpace.AgentSpaceId AgentSpaceArn: Description: The agent space ARN Value: !GetAtt AgentSpace.Arn AgentSpaceRoleArn: Description: The agent space IAM role ARN Value: !GetAtt DevOpsAgentSpaceRole.Arn OperatorRoleArn: Description: The operator app IAM role ARN Value: !GetAtt DevOpsOperatorRole.Arn

Schritt 2: Stellen Sie den Stack bereit

Führen Sie den folgenden Befehl aus, um den Stack bereitzustellen. <REGION>Ersetzen Sie durch ein Unterstützte Regionen (z. B.us-east-1).

aws cloudformation deploy \ --template-file devops-agent-stack.yaml \ --stack-name DevOpsAgentStack \ --capabilities CAPABILITY_NAMED_IAM \ --region <REGION>

Schritt 3: Notieren Sie die Stack-Ausgaben

Führen Sie nach Abschluss der Bereitstellung den folgenden Befehl aus, um die Stack-Ausgaben abzurufen. Notieren Sie sich diese Werte für die spätere Verwendung.

aws cloudformation describe-stacks \ --stack-name DevOpsAgentStack \ --query 'Stacks[0].Outputs' \ --region <REGION>

Das folgende Beispiel zeigt die erwartete Ausgabe:

[ { "OutputKey": "AgentSpaceId", "OutputValue": "abc123def456" }, { "OutputKey": "AgentSpaceArn", "OutputValue": "arn:aws:aidevops:<REGION>:<ACCOUNT_ID>:agentspace/abc123def456" }, { "OutputKey": "AgentSpaceRoleArn", "OutputValue": "arn:aws:iam::<ACCOUNT_ID>:role/DevOpsAgentRole-AgentSpace" }, { "OutputKey": "OperatorRoleArn", "OutputValue": "arn:aws:iam::<ACCOUNT_ID>:role/DevOpsAgentRole-WebappAdmin" } ]

Wenn Sie planen, Teil 2 abzuschließen, speichern Sie den AgentSpaceArn Wert. Sie benötigen es, um die kontoübergreifende Rolle zu konfigurieren.

Schritt 4: Überprüfen Sie die Bereitstellung

Führen Sie den folgenden AWS CLI-Befehl aus, um zu überprüfen, ob der Agent-Bereich erfolgreich erstellt wurde:

aws devops-agent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

Zu diesem Zeitpunkt wird Ihr Agentenbereich bereitgestellt, wobei die Operator-App aktiviert und Ihr Monitoring-Konto verknüpft ist. Der Agent kann Probleme in diesem Konto überwachen.

Teil 2 (optional): Kontenübergreifende Überwachung hinzufügen

In diesem Abschnitt erweitern Sie das Setup, sodass Ihr Agentenbereich Ressourcen in einem zweiten AWS Konto (dem Dienstkonto) überwachen kann. Dies beinhaltet zwei Aktionen:

  1. Bereitstellung einer IAM-Rolle in dem Dienstkonto, das dem Agentenbereich vertraut.

  2. Hinzufügen einer AWS Quellzuordnung zum Überwachungskonto, die auf das Dienstkonto verweist.

Schritt 1: Erstellen Sie die Vorlage für das Dienstkonto

Speichern Sie die folgende Vorlage unterdevops-agent-service-account.yaml. Diese Vorlage erstellt eine kontoübergreifende IAM-Rolle im sekundären Konto.

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Cross-account IAM role for secondary account monitoring Parameters: MonitoringAccountId: Type: String Description: The 12-digit AWS account ID of the monitoring account AgentSpaceArn: Type: String Description: The ARN of the agent space from the monitoring account Resources: # Cross-account IAM role trusted by the agent space DevOpsSecondaryAccountRole: Type: AWS::IAM::Role Properties: RoleName: DevOpsAgentRole-SecondaryAccount AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: aidevops.amazonaws.com Action: sts:AssumeRole Condition: StringEquals: aws:SourceAccount: !Ref MonitoringAccountId ArnLike: aws:SourceArn: !Ref AgentSpaceArn ManagedPolicyArns: - arn:aws:iam::aws:policy/AIDevOpsAgentAccessPolicy Policies: - PolicyName: AllowCreateServiceLinkedRoles PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowCreateServiceLinkedRoles Effect: Allow Action: - iam:CreateServiceLinkedRole Resource: - !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer Outputs: SecondaryAccountRoleArn: Description: The cross-account IAM role ARN Value: !GetAtt DevOpsSecondaryAccountRole.Arn

Schritt 2: Stellen Sie den Dienstkontenstapel bereit

Führen Sie mit den Anmeldeinformationen für das Dienstkonto den folgenden Befehl aus:

aws cloudformation deploy \ --template-file devops-agent-service-account.yaml \ --stack-name DevOpsAgentServiceAccountStack \ --capabilities CAPABILITY_NAMED_IAM \ --parameter-overrides \ MonitoringAccountId=<MONITORING_ACCOUNT_ID> \ AgentSpaceArn=<AGENT_SPACE_ARN> \ --region <REGION>

Schritt 3: Fügen Sie die AWS Quellzuordnung hinzu

Wechseln Sie zurück zum Überwachungskonto und erstellen Sie eine AWS Quellenzuordnung. Sie können dies tun, indem Sie einen separaten Stapel erstellen oder die ursprüngliche Vorlage aktualisieren. Im folgenden Beispiel wird eine eigenständige Vorlage verwendet.

Speichern Sie die folgende Vorlage alsdevops-agent-source-association.yaml:

AWSTemplateFormatVersion: '2010-09-09' Description: AWS DevOps Agent - Source AWS association for cross-account monitoring Parameters: AgentSpaceId: Type: String Description: The agent space ID from the monitoring account stack ServiceAccountId: Type: String Description: The 12-digit AWS account ID of the service account ServiceAccountRoleArn: Type: String Description: The ARN of the DevOpsAgentRole-SecondaryAccount role in the service account Resources: SourceAssociation: Type: AWS::DevOpsAgent::Association Properties: AgentSpaceId: !Ref AgentSpaceId ServiceId: aws Configuration: SourceAws: AccountId: !Ref ServiceAccountId AccountType: source AssumableRoleArn: !Ref ServiceAccountRoleArn Outputs: SourceAssociationId: Description: The source association ID Value: !Ref SourceAssociation

Stellen Sie den Zuordnungsstapel mithilfe der Anmeldeinformationen für das Überwachungskonto bereit:

aws cloudformation deploy \ --template-file devops-agent-source-association.yaml \ --stack-name DevOpsAgentSourceAssociationStack \ --parameter-overrides \ AgentSpaceId=<AGENT_SPACE_ID> \ ServiceAccountId=<SERVICE_ACCOUNT_ID> \ ServiceAccountRoleArn=arn:aws:iam::<SERVICE_ACCOUNT_ID>:role/DevOpsAgentRole-SecondaryAccount \ --region <REGION>

Verifizierung

Überprüfen Sie Ihr Setup, indem Sie die folgenden AWS CLI-Befehle ausführen:

# List your agent spaces aws devops-agent list-agent-spaces \ --region <REGION> # Get details of a specific agent space aws devops-agent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION> # List associations for an agent space aws devops-agent list-associations \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

Fehlerbehebung

In diesem Abschnitt werden häufig auftretende Probleme und deren Behebung beschrieben.

CloudFormation Ressourcentyp wurde nicht gefunden

  • Stellen Sie sicher, dass Sie die Bereitstellung in einem durchführenUnterstützte Regionen.

  • Vergewissern Sie sich, dass Ihre AWS CLI mit den entsprechenden Berechtigungen konfiguriert ist.

Die Erstellung der IAM-Rolle ist fehlgeschlagen

  • Stellen Sie sicher, dass Ihre Bereitstellungsanmeldedaten berechtigt sind, IAM-Rollen mit benutzerdefinierten Namen () CAPABILITY_NAMED_IAM zu erstellen.

  • Vergewissern Sie sich, dass die Bedingungen der Vertrauensrichtlinie mit Ihrer Konto-ID übereinstimmen.

Die kontoübergreifende Bereitstellung schlägt fehl

  • Jeder Stapel muss mit Anmeldeinformationen für das Zielkonto bereitgestellt werden. Verwenden Sie das --profile Flag, um das richtige AWS CLI-Profil anzugeben.

  • Stellen Sie sicher, dass der AgentSpaceArn Parameter genau mit dem ARN aus den Stackausgaben von Teil 1 übereinstimmt.

Verzögerungen bei der IAM-Übertragung

  • Die Übertragung von IAM-Rollenänderungen kann einige Minuten dauern. Wenn die Erstellung des Agentenbereichs unmittelbar nach der Rollenerstellung fehlschlägt, warten Sie einige Minuten und führen Sie die Bereitstellung erneut durch.

Bereinigen

Um alle Ressourcen zu entfernen, löschen Sie die Stapel in umgekehrter Reihenfolge.

Warnung: Durch diese Aktion werden Ihr Agentenbereich und alle zugehörigen Daten dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. Stellen Sie sicher, dass Sie alle wichtigen Informationen gesichert haben, bevor Sie fortfahren.

Führen Sie die folgenden Befehle aus, um die Stapel zu löschen:

# If you deployed the source association stack, delete it first aws cloudformation delete-stack \ --stack-name DevOpsAgentSourceAssociationStack \ --region <REGION> aws cloudformation wait stack-delete-complete \ --stack-name DevOpsAgentSourceAssociationStack \ --region <REGION> # If you deployed the service account stack, delete it next (using service account credentials) aws cloudformation delete-stack \ --stack-name DevOpsAgentServiceAccountStack \ --region <REGION> aws cloudformation wait stack-delete-complete \ --stack-name DevOpsAgentServiceAccountStack \ --region <REGION> # Delete the main stack last aws cloudformation delete-stack \ --stack-name DevOpsAgentStack \ --region <REGION>

Nächste Schritte

Nachdem Sie Ihren AWS DevOps Agenten bereitgestellt haben, indem AWS CloudFormation Sie: