AWS Beispiele für Richtlinien für den Fault Injection Service - AWS Fehlerinjektionsservice

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.

AWS Beispiele für Richtlinien für den Fault Injection Service

Standardmäßig sind Benutzer und Rollen nicht berechtigt, AWS FIS-Ressourcen zu erstellen oder zu ändern. Sie können auch keine Aufgaben mithilfe der AWS Management Console, AWS Command Line Interface (AWS CLI) oder AWS API ausführen. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern die Berechtigung erteilen, Aktionen für die Ressourcen auszuführen, die sie benötigen. Der Administrator kann dann die IAM-Richtlinien zu Rollen hinzufügen, und Benutzer können die Rollen annehmen.

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

Einzelheiten zu den von AWS FIS definierten Aktionen und Ressourcentypen, einschließlich des Formats der ARNs für jeden Ressourcentyp, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für den AWS Fault Injection Service in der Service Authorization Reference.

Bewährte Methoden für Richtlinien

Identitätsbasierte Richtlinien legen fest, ob jemand AWS FIS-Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder diese löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Befolgen Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Anleitungen und Empfehlungen:

  • Beginnen Sie mit AWS verwalteten Richtlinien und wechseln Sie zu Berechtigungen mit den geringsten Rechten — Verwenden Sie die AWS verwalteten Richtlinien, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um Ihren Benutzern und Workloads zunächst Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie unter AWS -verwaltete Richtlinien oder AWS -verwaltete Richtlinien für Auftrags-Funktionen im IAM-Benutzerhandbuch.

  • Anwendung von Berechtigungen mit den geringsten Rechten:Wenn Sie mit IAM-Richtlinien Berechtigungen festlegen, gewähren Sie nur die Berechtigungen, die für die Durchführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als die geringsten Berechtigungen. Weitere Informationen zur Verwendung von IAM zum Anwenden von Berechtigungen finden Sie unter Richtlinien und Berechtigungen in IAM im IAM-Benutzerhandbuch.

  • Verwenden von Bedingungen in IAM-Richtlinien zur weiteren Einschränkung des Zugriffs:Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen zu beschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anforderungen mithilfe von SSL gesendet werden müssen. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese für einen bestimmten Zweck verwendet werden AWS-Service, z. AWS CloudFormation B. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.

  • Verwenden von IAM Access Analyzer zur Validierung Ihrer IAM-Richtlinien, um sichere und funktionale Berechtigungen zu gewährleisten:IAM Access Analyzer validiert neue und vorhandene Richtlinien, damit die Richtlinien der IAM-Richtliniensprache (JSON) und den bewährten IAM-Methoden entsprechen. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Weitere Informationen finden Sie unter Richtlinienvalidierung zum IAM Access Analyzer im IAM-Benutzerhandbuch.

  • Multi-Faktor-Authentifizierung (MFA) erforderlich — Wenn Sie ein Szenario haben, das IAM-Benutzer oder einen Root-Benutzer in Ihrem System erfordert AWS-Konto, aktivieren Sie MFA für zusätzliche Sicherheit. Um MFA beim Aufrufen von API-Vorgängen anzufordern, fügen Sie Ihren Richtlinien MFA-Bedingungen hinzu. Weitere Informationen finden Sie unter Konfigurieren eines MFA-geschützten API-Zugriffs im IAM-Benutzerhandbuch.

Weitere Informationen zu bewährten Methoden in IAM finden Sie unter Bewährte Methoden für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Beispiel: Verwenden Sie die FIS-Konsole AWS

Um auf die AWS Fault Injection Service-Konsole zugreifen zu können, benötigen Sie ein Mindestmaß an Berechtigungen. Diese Berechtigungen müssen es Ihnen ermöglichen, Details zu den AWS FIS-Ressourcen in Ihrem AWS-Konto aufzulisten und einzusehen. 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 (Benutzer oder Rollen) mit dieser Richtlinie.

Sie müssen Benutzern, die nur die API AWS CLI oder die AWS API aufrufen, keine Mindestberechtigungen für die Konsole gewähren. Stattdessen sollten Sie nur Zugriff auf die Aktionen zulassen, die der API-Operation entsprechen, die die Benutzer ausführen möchten.

Die folgende Beispielrichtlinie gewährt die Erlaubnis, alle AWS FIS-Ressourcen mithilfe AWS der FIS-Konsole aufzulisten und anzuzeigen, sie jedoch nicht zu erstellen, zu aktualisieren oder zu löschen. Sie gewährt auch Berechtigungen zum Anzeigen der verfügbaren Ressourcen, die von allen AWS FIS-Aktionen verwendet werden, die Sie in einer Experimentvorlage angeben könnten.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FISReadOnlyActions", "Effect": "Allow", "Action": [ "fis:List*", "fis:Get*" ], "Resource": "*" }, { "Sid": "AdditionalReadOnlyActions", "Effect": "Allow", "Action": [ "ssm:Describe*", "ssm:Get*", "ssm:List*", "ec2:DescribeInstances", "rds:DescribeDBClusters", "ecs:DescribeClusters", "ecs:ListContainerInstances", "eks:DescribeNodegroup", "cloudwatch:DescribeAlarms", "iam:ListRoles" ], "Resource": "*" }, { "Sid": "PermissionsToCreateServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "fis.amazonaws.com" } } } ] }

Beispiel: Listet die verfügbaren AWS FIS-Aktionen auf

Die folgende Richtlinie erteilt die Erlaubnis, die verfügbaren AWS FIS-Aktionen aufzulisten.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "fis:ListActions" ], "Resource": "arn:aws:fis:*:*:action/*" } ] }

Beispiel: Erstellen Sie eine Versuchsvorlage für eine bestimmte Aktion

Die folgende Richtlinie erteilt die Erlaubnis, eine Experimentvorlage für die Aktion zu erstellenaws:ec2:stop-instances.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyExample", "Effect": "Allow", "Action": [ "fis:CreateExperimentTemplate" ], "Resource": [ "arn:aws:fis:*:*:action/aws:ec2:stop-instances", "arn:aws:fis:*:*:experiment-template/*" ] }, { "Sid": "PolicyPassRoleExample", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id:role/role-name" ] } ] }

Beispiel: Starten Sie ein Experiment

Die folgende Richtlinie erteilt die Erlaubnis, ein Experiment mit der angegebenen IAM-Rolle und der angegebenen Experimentvorlage zu starten. Sie ermöglicht es AWS FIS auch, im Namen des Benutzers eine dienstbezogene Rolle zu erstellen. Weitere Informationen finden Sie unter Verwenden Sie dienstbezogene Rollen für den Fault Injection AWS Service.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyExample", "Effect": "Allow", "Action": [ "fis:StartExperiment" ], "Resource": [ "arn:aws:fis:*:*:experiment-template/experiment-template-id", "arn:aws:fis:*:*:experiment/*" ] }, { "Sid": "PolicyExampleforServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "fis.amazonaws.com" } } } ] }

Beispiel: Verwenden Sie Tags, um die Ressourcennutzung zu kontrollieren

Die folgende Richtlinie gewährt die Erlaubnis, Experimente anhand von Experimentvorlagen auszuführen, die das Tag enthaltenPurpose=Test. Sie gewährt keine Erlaubnis, Versuchsvorlagen zu erstellen oder zu ändern oder Experimente mit Vorlagen durchzuführen, die nicht über das angegebene Tag verfügen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "fis:StartExperiment", "Resource": "arn:aws:fis:*:*:experiment-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/Purpose": "Test" } } } ] }

Beispiel: Löschen Sie eine Experimentvorlage mit einem bestimmten Tag

Die folgende Richtlinie gewährt die Erlaubnis, eine Experimentvorlage mit Tag zu löschenPurpose=Test.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "fis:DeleteExperimentTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Purpose": "Test" } } } ] }

Beispiel: Erteilen 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 umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe der API AWS CLI oder AWS .

{ "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": "*" } ] }

Beispiel: Verwenden Sie Bedingungsschlüssel für ec2:InjectApiError

Die folgende Beispielrichtlinie verwendet den ec2:FisTargetArns Bedingungsschlüssel, um Zielressourcen einzugrenzen. Diese Richtlinie ermöglicht die AWS FIS-Aktionen aws:ec2:api-insufficient-instance-capacity-error undaws:ec2:asg-insufficient-instance-capacity-error.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:InjectApiError", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "ec2:FisActionId": [ "aws:ec2:api-insufficient-instance-capacity-error", ], "ec2:FisTargetArns": [ "arn:aws:iam:*:*:role:role-name" ] } } }, { "Effect": "Allow", "Action": "ec2:InjectApiError", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "ec2:FisActionId": [ "aws:ec2:asg-insufficient-instance-capacity-error" ], "ec2:FisTargetArns": [ "arn:aws:autoscaling:*:*:autoScalingGroup:uuid:autoScalingGroupName/asg-name" ] } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeAutoScalingGroups", "Resource": "*" } ] }

Beispiel: Verwenden Sie Bedingungsschlüssel für aws:s3:bucket-pause-replication

In der folgenden Beispielrichtlinie wird der S3:IsReplicationPauseRequest Bedingungsschlüssel verwendet, um die FIS im Rahmen der AWS FIS-Aktion zuzulassen PutReplicationConfiguration und GetReplicationConfiguration nur dann, wenn sie von der AWS FIS ausgeführt wird. aws:s3:bucket-pause-replication

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "S3:PauseReplication" ], "Resource": "arn:aws:s3:::mybucket", "Condition": { "StringEquals": { "s3:DestinationRegion": "region" } } }, { "Effect": "Allow", "Action": [ "S3:PutReplicationConfiguration", "S3:GetReplicationConfiguration" ], "Resource": "arn:aws:s3:::mybucket", "Condition": { "BoolIfExists": { "s3:IsReplicationPauseRequest": "true" } } }, { "Effect": "Allow", "Action": [ "S3:ListBucket" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" } ] }

Beispiel: Experimentieren Sie mit der Rolle mit Ausführungsberechtigungen aws:dynamodb:encrypted-global-table-pause-replication

Die folgende Beispielrichtlinie gewährt AWS FIS die erforderlichen Berechtigungen, um ein Experiment mit einer einzigen Aktion aws:dynamodb:encrypted-global-table-pause-replication auszuführen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDB", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:DescribeGlobalTable" ], "Resource": [ "arn:aws:dynamodb:us-east-2:123456789012:table/MyEncryptedGlobalTable" ], "Condition": { "StringEquals": { "aws:ResourceTag/fis-enabled": "true" } } }, { "Sid": "Tagging", "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": [ "*" ] }, { "Sid": "KMS", "Effect": "Allow", "Action": [ "kms:PutKeyPolicy", "kms:DescribeKey", "kms:GetKeyPolicy" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/MyGlobalTableEncryptionKey" }, "Condition": { "StringEquals": { "aws:ResourceTag/fis-enabled": "true" } } ] }
Anmerkung

AWS FIS wird verwendetkms:PutKeyPolicy, um den Zugriff auf DynamoDB, auf den vom Kunden verwalteten AWS KMS Schlüssel, zu verweigern, wodurch die Replikation gestoppt wird. Wir empfehlen, die Rolle nur zu verwenden, wenn Sie aktiv ein Experiment mit dieser Aktion ausführen. Andernfalls empfehlen wir, sie zu löschen. Durch das Löschen der Rolle werden die FIS-Berechtigungen für entfernt. kms:PutKeyPolicy Suchen Sie nach Abschluss des Experiments die Rolle in den Details der Experimentvorlage. Wählen Sie in der IAM-Konsole den Link zur IAM-Rolle aus und klicken Sie auf Löschen. Navigieren Sie nach dem Löschen der Rolle zur AWS KMS Konsole und suchen Sie den AWS KMS Schlüssel, der zum Schutz von Daten verwendet wird, in der DynamoDB-Zieltabelle. Stellen Sie sicher, dass die AWS KMS Schlüsselrichtlinie Ihren Erwartungen entspricht. Sie sollten keine AWS FIS-Erklärung mehr sehen (z. B.FIS_DDB_PAUSE_REPLICATION-EXP123456789012345_DO_NOT_MODIFY).

aws:dynamodb:encrypted-global-table-pause-replicationFIS-Aktionen fügen der Richtlinie für den KMS-Schlüssel, der zum Schutz von Daten in den globalen DynamoDB-Zieltabellen verwendet wird, dynamisch die folgenden Berechtigungen hinzu:

{ "Sid": "DO_NOT_MODIFY_FIS_DDB_PAUSE_REPLICATION-EXP123456789012345", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:dynamodb:tableName": [ "transactions-global-table", "inventory-global-table" ] } } }

Diese Berechtigungen werden am Ende des vorhandenen AWS KMS wichtigen Richtliniendokuments angehängt. Mit der obigen Richtlinienanweisung werden der dienstverknüpften DynamoDB-Rolle die Berechtigungen zum Replizieren von Daten in und aus den im Kontextschlüssel aufgeführten Tabellen entzogen. kms:EncryptionContext:aws:dynamodb:tableName Im obigen Beispiel würde die Replikation für globale DynamoDB-Tabellen mit den Namen:transaction-global-table, beendet. inventory-global-table