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.
Beschränkung des Agentenzugriffs in einem AWS Account
AWS DevOps Der Agent verwendet IAM-Rollen, um AWS Ressourcen bei der Untersuchung von Vorfällen und präventiven Bewertungen zu ermitteln und zu beschreiben. Sie können die Zugriffsebene des Agenten steuern, indem Sie die diesen Rollen zugewiesenen IAM-Richtlinien konfigurieren. Die Anwendungstopologie zeigt nicht alles, worauf der Agent Zugriff hat. IAM-Richtlinien sind die einzige Möglichkeit, wirklich einzuschränken, auf welche AWS Service-APIs und Ressourcen der Agent zugreifen kann.
Grundlegendes zu den IAM-Rollen für AWS DevOps Agent
AWS DevOps Der Agent verwendet IAM-Rollen, um auf Ressourcen in zwei Arten von Konten zuzugreifen:
Primäre Kontorolle — Gewährt dem Agenten Zugriff auf Ressourcen in dem AWS Konto, in dem Sie den Agentenbereich erstellen.
Sekundäre Kontorollen — Gewährt dem Agenten Zugriff auf Ressourcen in zusätzlichen AWS Konten, die Sie mit dem Agent Space verbinden.
Für beide Kontotypen können Sie einschränken, auf welche AWS Dienste der Agent zugreifen kann, den Zugriff auf bestimmte Ressourcen innerhalb dieser Dienste einschränken und steuern, in welchen Regionen der Agent arbeiten kann.
Grundlegendes zu Zugriffsrechten
AWS DevOps Der Agent wendet auf jede Sitzung, die er beim Zugriff auf Ihre Ressourcen erstellt, einen Berechtigungsschutz an. AWS Diese Leitplanke dient als Obergrenze — sie definiert die maximale Anzahl an Berechtigungen, die der Agent jemals verwenden kann, unabhängig davon, welche Berechtigungen Sie für die IAM-Rolle gewähren.
Funktionsweise
Wenn der Agent Ihre IAM-Rolle übernimmt, übergibt er eine Sitzungsrichtlinie, die die effektiven Berechtigungen für diese Sitzung einschränkt. Die effektiven Berechtigungen sind die Schnittmenge von:
Ihre IAM-Rollenrichtlinien — Die verwaltete Richtlinie und alle integrierten Richtlinien, die Sie der Rolle zuordnen.
Die Berechtigungsleitlinie — Eine Sitzungsrichtlinie, die vom AWS DevOps Agenten bei der Übernahme der Rolle angewendet wird.
Eine Genehmigung muss auf beiden Ebenen vorhanden sein, damit sie wirksam wird. Wenn Sie Ihrer Rolle eine Berechtigung hinzufügen, die nicht in der Leitplanke enthalten ist, kann der Agent sie nicht verwenden.
Standardberechtigungen
Die AIDevOpsAgentAccessPolicy verwaltete Richtlinie bietet den Standardsatz an schreibgeschützten Berechtigungen, die der Agent für Untersuchungen verwendet. Diese Berechtigungen sind in der Leitplanke enthalten, sodass sie ohne zusätzliche Konfiguration funktionieren.
Erweiterung der Berechtigungen über die Standardwerte hinaus
Die standardmäßige AIDevOpsAgentAccessPolicy verwaltete Richtlinie gewährt nur einen Teil dessen, was die Leitplanke zulässt. Die Leitplanke erlaubt außerdem jede Aktion in der ReadOnlyAccess AWS verwalteten Richtlinie sowie einige zusätzliche Berechtigungen. Wenn Sie eine Berechtigung verwenden möchten, die die Leitplanke zulässt, die Standardrichtlinie jedoch nicht gewährt, fügen Sie sie Ihrer Rolle als integrierte Richtlinie hinzu.
Damit der Agent beispielsweise bei Untersuchungen Objekte aus Ihren S3-Buckets lesen kann, fügen Sie Ihrer Rolle eine Inline-Richtlinie hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-application-bucket", "arn:aws:s3:::my-application-bucket/*" ] } ] }
Da s3:GetObject und in der Leitplanke enthalten s3:ListBucket sind, wird diese Inline-Richtlinie wirksam. Sie können sie Resource auf bestimmte Bereiche beschränken, um dem Prinzip der geringsten Rechte zu folgen.
Zusätzliche Berechtigungen werden unterstützt
Sie können jede von der Leitplanke unterstützte Berechtigung aktivieren, indem Sie sie Ihrer Rolle als Inline-Richtlinie hinzufügen. Diese werden standardmäßig nicht gewährt — Sie müssen sich explizit anmelden.
Wir haben umfassend getestet und bestätigt, dass nur die in der AIDevOpsAgentAccessPolicy verwalteten Richtlinie enthaltenen Berechtigungen für die Verwendung mit dem Agenten sicher sind. Die anderen Berechtigungen, die die Guardrail unterstützt, wurden nicht mit dem Agenten getestet. Ihre Freigabe fällt unter das Modell der AWS geteilten Verantwortung.
In der folgenden Tabelle sind die zusätzlichen Berechtigungen aufgeführt, die das Guardrail über die ReadOnlyAccess verwaltete Richtlinie hinaus unterstützt.
| Service | Aktionen | Anwendungsfall |
|---|---|---|
| Amazon Athena | athena:StartQueryExecution, athena:StopQueryExecution |
Führen Sie Athena-Abfragen für Ihren Datenkatalog aus |
| AWS KMS | kms:Decrypt |
Entschlüsseln Sie verschlüsselte Ressourcen wie S3-Objekte |
Durch die Leitplanke blockierte Berechtigungen
Wenn Sie Ihrer Rolle eine Berechtigung hinzufügen, die nicht in der Leitplanke enthalten ist, kann der Agent sie nicht verwenden. Das ist beabsichtigt — die Schutzbarriere verhindert, dass der Agent Aktionen ausführt, die außerhalb seines vorgesehenen Bereichs liegen, selbst wenn die Rolle dies andernfalls zulassen würde.
Beispielsweise dynamodb:DeleteItem sind Schreiboperationen wie s3:PutObjectec2:TerminateInstances, oder nicht in der Leitplanke enthalten. Selbst wenn Ihre Rolle diese Berechtigungen gewährt, kann der Agent diese Aktionen nicht ausführen.
Zusammenfassung
| Ebene | Wer kontrolliert es | Zweck |
|---|---|---|
| Richtlinien für IAM-Rollen | Sie | Definieren Sie, was der Agent Ihrer Meinung nach tun kann |
| Leitplanke für Genehmigungen | AWS DevOps Beauftragter | Definiert das Maximum, das der Agent jemals tun kann |
| Effektive Berechtigungen | Schnittpunkt von beiden | Was der Agent eigentlich kann |
Dieses Modell stellt sicher, dass der Agent innerhalb einer klar definierten Sicherheitsgrenze arbeitet, und bietet Ihnen gleichzeitig die Flexibilität, seine Funktionen für Ihren speziellen Anwendungsfall zu erweitern.
Wählen Sie Ihre Ressourcengrenzen
Wenn Sie den Zugriff auf Ressourcen einschränken, müssen Sie genügend Berechtigungen angeben, damit der Agent Anwendungsvorfälle erfolgreich untersuchen kann. Dies umfasst:
Alle Ressourcen für im Leistungsumfang enthaltene Anwendungen, die der Agent überwachen und untersuchen sollte
Die gesamte unterstützende Infrastruktur, von der diese Anwendungen abhängig sind
Die unterstützende Infrastruktur kann Folgendes umfassen:
Netzwerkkomponenten (VPCs, Subnetze, Load Balancer, API-Gateways)
Datenspeicher (Datenbanken, Caches, Objektspeicher)
Rechenressourcen (EC2-Instances, Lambda-Funktionen, Container)
Überwachungs- und Protokollierungsdienste (CloudWatch,) CloudTrail
Ressourcen zur Identitäts- und Zugriffsverwaltung, die zum Verständnis der Berechtigungen benötigt werden
Wenn Sie den Zugriff zu eng einschränken, ist der Agent möglicherweise nicht in der Lage, die Hauptursachen zu identifizieren, die auf die unterstützende Infrastruktur außerhalb Ihrer definierten Grenzen zurückzuführen sind.
Einschränkung des Servicezugriffs
Sie können einschränken, auf welche AWS Dienste der Agent zugreifen kann, indem Sie die IAM-Richtlinien ändern, die den Rollen des Agenten zugeordnet sind. Beachten Sie beim Erstellen benutzerdefinierter Richtlinien die folgenden bewährten Methoden:
Nur Leseberechtigungen gewähren — Der Agent muss bei Untersuchungen Ressourcenkonfigurationen, Metriken und Protokolle lesen. Vermeiden Sie es, dem Agenten Berechtigungen zu gewähren, die es dem Agenten ermöglichen, Ressourcen zu ändern oder zu löschen.
Beschränken Sie sich auf die erforderlichen Dienste — Schließen Sie nur die AWS Dienste ein, die Ressourcen enthalten, die für Ihre Anwendungen relevant sind. Wenn Ihre Anwendung beispielsweise Amazon RDS nicht verwendet, nehmen Sie keine RDS-Berechtigungen in die Richtlinie auf.
Verwenden Sie bestimmte Aktionen statt Platzhaltern — Anstatt
service:*Berechtigungen zu gewähren, geben Sie einzelne Aktionen wiecloudwatch:GetMetricDataoderec2:DescribeInstancesan.
Beispiel für eine Richtlinie, die sich auf bestimmte Dienste beschränkt:
json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "logs:GetLogEvents", "logs:FilterLogEvents", "ec2:DescribeInstances", "lambda:GetFunction", "lambda:GetFunctionConfiguration" ], "Resource": "*" } ] }
Beschränkung des Zugriffs auf Ressourcen
Um den Agenten auf bestimmte Ressourcen innerhalb eines Dienstes zu beschränken, verwenden Sie in Ihren IAM-Richtlinien Berechtigungen auf Ressourcenebene. Auf diese Weise können Sie nur Zugriff auf Ressourcen gewähren, die bestimmten Mustern entsprechen.
Verwenden von ARN-Mustern für Ressourcen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetFunctionConfiguration" ], "Resource": "arn:aws:lambda:*:*:function:production-*" } ] }
In diesem Beispiel wird der Agent darauf beschränkt, nur auf Lambda-Funktionen zuzugreifen, deren Namen mit „production-“ beginnen.
Verwendung von tagbasierten Einschränkungen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceStatus" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "production" } } } ] }
In diesem Beispiel wird der Agent darauf beschränkt, nur auf EC2-Instances zuzugreifen, die mit gekennzeichnet sind. Environment=production
Beschränkung des regionalen Zugriffs
Um einzuschränken, auf welche AWS Regionen der Agent zugreifen kann, verwenden Sie den aws:RequestedRegion Bedingungsschlüssel in Ihren IAM-Richtlinien:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "lambda:Get*", "cloudwatch:Get*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "us-east-1", "us-west-2" ] } } } ] }
In diesem Beispiel wird der Agent darauf beschränkt, nur auf Ressourcen in den Regionen us-east-1 und us-west-2 zuzugreifen.
Erstellen benutzerdefinierter IAM-Richtlinien
Wenn Sie einen Agentenbereich erstellen oder sekundäre Konten hinzufügen, haben Sie die Möglichkeit, mithilfe einer Richtlinienvorlage eine benutzerdefinierte IAM-Rolle zu erstellen. Auf diese Weise können Sie das Prinzip der geringsten Privilegien implementieren.
Beim Erstellen eines Agentenbereichs
Von der DevOps Agentenkonsole in der AWS Managementkonsole aus...
Wählen Sie Neue DevOps Agentenrolle mithilfe eines Richtliniendokuments erstellen aus und folgen Sie den Anweisungen
Bei der Bearbeitung eines Agentenbereichs
Von der DevOps Agentenkonsole in der AWS Managementkonsole aus...
Wählen Sie die Registerkarte „Funktionen“
Wählen Sie im Cloud-Bereich das sekundäre Konto aus, das Sie bearbeiten möchten, und wählen Sie Bearbeiten
Wählen Sie Neue DevOps Agentenrichtlinie mithilfe einer Vorlage erstellen aus und folgen Sie den Anweisungen
Bewährte Methoden für benutzerdefinierte Richtlinien
Nur Leseberechtigungen gewähren — Vermeiden Sie Berechtigungen, die das Ändern oder Löschen von Ressourcen ermöglichen
Verwenden Sie nach Möglichkeit Berechtigungen auf Ressourcenebene — Beschränken Sie den Zugriff auf bestimmte Ressourcen mithilfe von ARN-Mustern oder -Tags
Regelmäßige Überprüfung und Prüfung der Berechtigungen — Überprüfen Sie regelmäßig die IAM-Richtlinien des Agenten, um sicherzustellen, dass sie weiterhin Ihren Sicherheitsanforderungen entsprechen