Beispielrichtlinien auf Basis von Ressourcenberechtigungen - AWS Elastic Beanstalk

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.

Beispielrichtlinien auf Basis von Ressourcenberechtigungen

In diesem Abschnitt wird ein Anwendungsfall für die Steuerung der Benutzerberechtigungen für Elastic Beanstalk-Aktionen durchgegangen, die auf bestimmte Elastic Beanstalk-Ressourcen zugreifen. Dabei werden die Beispielrichtlinien für diesen Anwendungsfall vorgestellt. Weitere Informationen zu den Richtlinien für Elastic Beanstalk-Ressourcen finden Sie unter Erstellen einer benutzerdefinierten Benutzerrichtlinie. Weitere Informationen zum Verknüpfen von Richtlinien mit Benutzern und Gruppen finden Sie im Abschnitt Verwalten von IAM-Richtlinien unter Verwenden von AWS Identity and Access Management.

In diesem Anwendungsfall entwickelt das kleine Beratungsunternehmen Example Corp. Anwendungen für zwei verschiedene Kunden. Als Entwicklungsmanager ist John für die Entwicklung der beiden Elastic Beanstalk-Anwendungen "app1" und "app2" zuständig. John entwickelt die beiden Anwendungen und führt einige Tests aus; nur er kann die Produktionsumgebung für die beiden Anwendungen aktualisieren. Für "app1" und "app2" benötigt er folgende Berechtigungen:

  • Anzeigen der Anwendung, Anwendungsversionen, Umgebungen und Konfigurationsvorlagen

  • Erstellen von Anwendungsversionen sowie deren Bereitstellung in der Staging-Umgebung

  • Aktualisieren der Produktionsumgebung

  • Erstellen und Beenden von Umgebungen

Jill ist Testerin und muss die folgenden Ressourcen anzeigen können, um die beiden Anwendungen zu überwachen und zu testen: Anwendungen, Anwendungsversionen, Umgebungen und Konfigurationsvorlagen. Sie sollte jedoch nicht in der Lage sein, Änderungen an Elastic Beanstalk-Ressourcen vorzunehmen.

Jack ist der Entwickler von "app1" und muss alle Ressourcen für "app1" anzeigen können. Zudem soll er Anwendungsversionen für "app1" erstellen und diese in der Staging-Umgebung bereitstellen.

Judy ist der Administrator des AWS-Kontos von Example Corp. Sie hat die IAM-Benutzer für John, Jill und Jack erstellt und verknüpft folgende Richtlinien mit den Benutzern, um die benötigten Berechtigungen für die Anwendungen „app1“ und „app2“ zu erteilen.

Beispiel 1: John – Entwicklungsmanager für app1, app2

Wir haben die Richtlinie von John in drei einzelne Richtlinien unterteilt, denn diese können einfacher gelesen und verwaltet werden. Gemeinsam geben sie John die Berechtigungen, die er benötigt, um Entwicklungs-, Test- und Bereitstellungsaktionen für die beiden Anwendungen durchzuführen.

Die erste Richtlinie legt Aktionen für Auto Scaling, Amazon S3, Amazon EC2, CloudWatch, Amazon SNS, Elastic Load Balancing, Amazon RDS und fest AWS CloudFormation. Elastic Beanstalk nutzt diese zusätzlichen Services zur Bereitstellung zugrunde liegender Ressourcen für die Umgebungserstellung.

Beachten Sie, dass diese Richtlinie als Beispiel dient. Sie bietet umfangreiche Berechtigungen für AWS-Produkte, die von Elastic Beanstalk zur Anwendungs- und Umgebungsverwaltung herangezogen werden. Beispielsweise kann ein IAM-Benutzer mit ec2:* alle Aktionen für alle Amazon-EC2-Ressourcen des AWS-Kontos ausführen. Diese Berechtigungen sind nicht auf Ressourcen beschränkt, die mit Elastic Beanstalk verwendet werden. Als bewährte Methode sollten Sie Personen nur die Berechtigungen erteilen, die sie für ihre Aufgaben benötigen.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ec2:*", "ecs:*", "ecr:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "dynamodb:*", "rds:*", "sqs:*", "logs:*", "iam:GetPolicyVersion", "iam:GetRole", "iam:PassRole", "iam:ListRolePolicies", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfiles", "iam:ListRoles", "iam:ListServerCertificates", "acm:DescribeCertificate", "acm:ListCertificates", "codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:BatchGetBuilds", "codebuild:StartBuild" ], "Resource":"*" } ] }

In der zweiten Richtlinie werden die Elastic Beanstalk-Aktionen definiert, die John für die Ressourcen von "app1" und "app2" ausführen kann. Mit der Anweisung AllCallsInApplications können alle Elastic Beanstalk-Aktionen ("elasticbeanstalk:*") für alle Ressourcen in "app1" und "app2" ausgeführt werden (z. B. elasticbeanstalk:CreateEnvironment). Mit der Anweisung AllCallsOnApplications können alle Elastic Beanstalk-Aktionen ("elasticbeanstalk:*") für die Anwendungsressourcen von "app1" und "app2" ausgeführt werden (z. B. elasticbeanstalk:DescribeApplications, elasticbeanstalk:UpdateApplication usw.). Mit der Anweisung AllCallsOnSolutionStacks können alle Elastic Beanstalk-Aktionen ("elasticbeanstalk:*") für Lösungs-Stack-Ressourcen ausgeführt werden (z. B. elasticbeanstalk:ListAvailableSolutionStacks).

{ "Version": "2012-10-17", "Statement":[ { "Sid":"AllCallsInApplications", "Action":[ "elasticbeanstalk:*" ], "Effect":"Allow", "Resource":[ "*" ], "Condition":{ "StringEquals":{ "elasticbeanstalk:InApplication":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1", "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2" ] } } }, { "Sid":"AllCallsOnApplications", "Action":[ "elasticbeanstalk:*" ], "Effect":"Allow", "Resource":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1", "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2" ] }, { "Sid":"AllCallsOnSolutionStacks", "Action":[ "elasticbeanstalk:*" ], "Effect":"Allow", "Resource":[ "arn:aws:elasticbeanstalk:us-east-2::solutionstack/*" ] } ] }

Die dritte Richtlinie legt die Elastic Beanstalk-Aktionen fest, für die die zweite Richtlinie Berechtigungen benötigt, um diese Elastic Beanstalk-Aktionen abzuschließen. Mit der Anweisung AllNonResourceCalls kann die elasticbeanstalk:CheckDNSAvailability-Aktion ausgeführt werden, die für den Aufruf von elasticbeanstalk:CreateEnvironment und anderen Aktionen erforderlich ist. Zudem kann damit die elasticbeanstalk:CreateStorageLocation-Aktion ausgeführt werden, die für elasticbeanstalk:CreateApplication, elasticbeanstalk:CreateEnvironment und weitere Aktionen benötigt wird.

{ "Version": "2012-10-17", "Statement":[ { "Sid":"AllNonResourceCalls", "Action":[ "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateStorageLocation" ], "Effect":"Allow", "Resource":[ "*" ] } ] }

Beispiel 2: Jill – Tester für app1, app2

Wir haben die Richtlinie von Jill in drei einzelne Richtlinien unterteilt, denn diese können einfacher gelesen und verwaltet werden. Mit diesen drei Richtlinien erhält Jill die benötigten Berechtigungen, um die Aktionen für das Testen und Überwachen der beiden Anwendungen auszuführen.

Die erste Richtlinie legt die Aktionen Describe*, List* und Get* für Auto Scaling, Amazon S3, Amazon EC2, CloudWatch, Amazon SNS, Elastic Load Balancing, Amazon RDS und AWS CloudFormation (für nicht veraltete Containertypen) fest, sodass die Elastic-Beanstalk-Aktionen in der Lage sind, die relevanten Informationen über die zugrundeliegenden Ressourcen der Anwendungen app1 und app2 abzurufen.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ec2:Describe*", "elasticloadbalancing:Describe*", "autoscaling:Describe*", "cloudwatch:Describe*", "cloudwatch:List*", "cloudwatch:Get*", "s3:Get*", "s3:List*", "sns:Get*", "sns:List*", "rds:Describe*", "cloudformation:Describe*", "cloudformation:Get*", "cloudformation:List*", "cloudformation:Validate*", "cloudformation:Estimate*" ], "Resource":"*" } ] }

In der zweiten Richtlinie werden die Elastic Beanstalk-Aktionen definiert, die Jill für die Ressourcen von "app1" und "app2" ausführen kann. Mit der Anweisung AllReadCallsInApplications können die Describe*-Aktionen sowie die Aktionen für Umgebungsinformationen ausgeführt werden. Mit der Anweisung AllReadCallsOnApplications können die Aktionen DescribeApplications und DescribeEvents für die Anwendungsressourcen von "app1" und "app2" ausgeführt werden. Mit der Anweisung AllReadCallsOnSolutionStacks können Anzeigeaktionen für Lösungs-Stack-Ressourcen ausgeführt werden (ListAvailableSolutionStacks, DescribeConfigurationOptions und ValidateConfigurationSettings).

{ "Version": "2012-10-17", "Statement":[ { "Sid":"AllReadCallsInApplications", "Action":[ "elasticbeanstalk:Describe*", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo" ], "Effect":"Allow", "Resource":[ "*" ], "Condition":{ "StringEquals":{ "elasticbeanstalk:InApplication":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1", "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2" ] } } }, { "Sid":"AllReadCallsOnApplications", "Action":[ "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEvents" ], "Effect":"Allow", "Resource":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1", "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2" ] }, { "Sid":"AllReadCallsOnSolutionStacks", "Action":[ "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:ValidateConfigurationSettings" ], "Effect":"Allow", "Resource":[ "arn:aws:elasticbeanstalk:us-east-2::solutionstack/*" ] } ] }

Die dritte Richtlinie legt die Elastic Beanstalk-Aktionen fest, für die die zweite Richtlinie Berechtigungen benötigt, um diese Elastic Beanstalk-Aktionen abzuschließen. Mit der Anweisung AllNonResourceCalls kann die elasticbeanstalk:CheckDNSAvailability-Aktion ausgeführt werden, die für einige Anzeigeaktionen erforderlich ist.

{ "Version": "2012-10-17", "Statement":[ { "Sid":"AllNonResourceCalls", "Action":[ "elasticbeanstalk:CheckDNSAvailability" ], "Effect":"Allow", "Resource":[ "*" ] } ] }

Beispiel 3: Jack – Entwickler für app1

Wir haben die Richtlinie von Jack in drei einzelne Richtlinien unterteilt, denn diese können einfacher gelesen und verwaltet werden. Gemeinsam geben sie Jack die Berechtigungen, die er benötigt, um Test-, Überwachungs- und Bereitstellungsaktionen auf der app1-Ressource durchzuführen.

Die erste Richtlinie legt die Aktionen für Auto Scaling, Amazon S3, Amazon EC2, CloudWatch, Amazon SNS, Elastic Load Balancing, Amazon RDS und AWS CloudFormation (für nicht veraltete Containertypen) fest, sodass die Elastic-Beanstalk-Aktionen in der Lage sind, die zugrundeliegenden Ressourcen von app1 anzuzeigen und mit ihnen zu arbeiten. Eine Liste mit unterstützten aktuellen Containertypen finden Sie unter . Warum sind einige Plattformversionen als Legacy gekennzeichnet?

Beachten Sie, dass diese Richtlinie als Beispiel dient. Sie bietet umfangreiche Berechtigungen für AWS-Produkte, die von Elastic Beanstalk zur Anwendungs- und Umgebungsverwaltung herangezogen werden. Beispielsweise kann ein IAM-Benutzer mit ec2:* alle Aktionen für alle Amazon-EC2-Ressourcen des AWS-Kontos ausführen. Diese Berechtigungen sind nicht auf Ressourcen beschränkt, die mit Elastic Beanstalk verwendet werden. Als bewährte Methode sollten Sie Personen nur die Berechtigungen erteilen, die sie für ihre Aufgaben benötigen.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ec2:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "rds:*", "cloudformation:*" ], "Resource":"*" } ] }

In der zweiten Richtlinie werden die Elastic Beanstalk-Aktionen definiert, die Jack für die "app1"-Ressource ausführen kann.

{ "Version": "2012-10-17", "Statement":[ { "Sid":"AllReadCallsAndAllVersionCallsInApplications", "Action":[ "elasticbeanstalk:Describe*", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:UpdateApplicationVersion" ], "Effect":"Allow", "Resource":[ "*" ], "Condition":{ "StringEquals":{ "elasticbeanstalk:InApplication":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1" ] } } }, { "Sid":"AllReadCallsOnApplications", "Action":[ "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEvents" ], "Effect":"Allow", "Resource":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1" ] }, { "Sid":"UpdateEnvironmentInApplications", "Action":[ "elasticbeanstalk:UpdateEnvironment" ], "Effect":"Allow", "Resource":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:environment/app1/app1-staging*" ], "Condition":{ "StringEquals":{ "elasticbeanstalk:InApplication":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1" ] }, "StringLike":{ "elasticbeanstalk:FromApplicationVersion":[ "arn:aws:elasticbeanstalk:us-east-2:123456789012:applicationversion/app1/*" ] } } }, { "Sid":"AllReadCallsOnSolutionStacks", "Action":[ "elasticbeanstalk:ListAvailableSolutionStacks", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:ValidateConfigurationSettings" ], "Effect":"Allow", "Resource":[ "arn:aws:elasticbeanstalk:us-east-2::solutionstack/*" ] } ] }

Die dritte Richtlinie legt die Elastic Beanstalk-Aktionen fest, für die die zweite Richtlinie Berechtigungen benötigt, um diese Elastic Beanstalk-Aktionen abzuschließen. Mit der Anweisung AllNonResourceCalls kann die elasticbeanstalk:CheckDNSAvailability-Aktion ausgeführt werden, die für den Aufruf von elasticbeanstalk:CreateEnvironment und anderen Aktionen erforderlich ist. Zudem kann damit die elasticbeanstalk:CreateStorageLocation-Aktion ausgeführt werden, die für elasticbeanstalk:CreateEnvironment und weitere Aktionen benötigt wird.

{ "Version": "2012-10-17", "Statement":[ { "Sid":"AllNonResourceCalls", "Action":[ "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateStorageLocation" ], "Effect":"Allow", "Resource":[ "*" ] } ] }