Berechtigungen für Apps angeben, die auf EC2 Instanzen ausgeführt werden - AWS OpsWorks

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.

Berechtigungen für Apps angeben, die auf EC2 Instanzen ausgeführt werden

Wichtig

Der AWS OpsWorks Stacks Service hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf AWS re:POST oder über den AWS Premium-Support.

Wenn die Anwendungen, die auf den EC2 Amazon-Instances Ihres Stacks ausgeführt werden, auf andere AWS Ressourcen wie Amazon S3-Buckets zugreifen müssen, müssen sie über die entsprechenden Berechtigungen verfügen. Diese Berechtigungen können Sie über ein Instance-Profil gewähren. Sie können für jede Instance ein Instance-Profil angeben, wenn Sie einen AWS OpsWorks Stacks-Stack erstellen.

Erweiterte Option auf der Seite "Stack hinzufügen"

Sie können durch Bearbeiten der Layer-Konfiguration auch ein Profil für die Instances eines Layers festlegen.

Das Instanzprofil spezifiziert eine IAM Rolle. Anwendungen, die auf der Instanz ausgeführt werden, können diese Rolle für den Zugriff auf AWS Ressourcen übernehmen, vorbehaltlich der Berechtigungen, die in der Rollenrichtlinie gewährt werden. Weitere Informationen darüber, wie eine Anwendung eine Rolle übernimmt, finden Sie unter Übernahme der Rolle mithilfe eines API Aufrufs.

Sie haben folgende Möglichkeiten, um ein Instance-Profil zu erstellen:

Ein Instanzprofil muss über eine Vertrauensbeziehung und eine angefügte Richtlinie verfügen, die Berechtigungen für den Zugriff auf AWS Ressourcen gewährt.

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

Das Instanzprofil muss über diese Vertrauensstellung verfügen, damit AWS OpsWorks Stacks in Ihrem Namen handeln kann. Ändern Sie die Vertrauensstellung nicht, wenn Sie die Standard-Servicerolle verwenden. Wenn Sie eine benutzerdefinierte Servicerolle erstellen, geben Sie die Vertrauensstellung wie folgt an:

  • Wenn Sie den Assistenten zum Erstellen von Rollen in der IAMKonsole verwenden, geben Sie auf der zweiten Seite des Assistenten unter AWS Service Roles den EC2Amazon-Rollentyp an.

  • Wenn Sie eine AWS CloudFormation Vorlage verwenden, können Sie dem Abschnitt Ressourcen Ihrer Vorlage etwas wie das Folgende hinzufügen.

    "Resources": { "OpsWorksEC2Role": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/" } }, "RootInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksEC2Role" } ] } } }

Wenn Sie Ihr Instanzprofil erstellen, können Sie der jeweiligen Rolle des Profils eine entsprechende Richtlinie zuordnen. Nachdem Sie den Stack erstellt haben, müssen Sie die IAMKonsole verwenden oder API der Rolle des Profils eine entsprechende Richtlinie zuordnen. Die folgende Richtlinie gewährt beispielsweise vollen Zugriff auf alle Objekte im Amazon S3-Bucket mit dem Namen amzn-s3-demo-bucket. Ersetzen region und amzn-s3-demo-bucket mit Werten, die Ihrer Konfiguration entsprechen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:region::amzn-s3-demo-bucket/*" } ] }

Ein Beispiel für das Erstellen und Verwenden von Instance-Profilen finden Sie unter Verwenden eines Amazon S3-Buckets.

Wenn Ihre Anwendung ein Instanzprofil verwendet, um die AWS OpsWorks Stacks API von einer EC2 Instance aus aufzurufen, muss die Richtlinie die iam:PassRole Aktion zusätzlich zu den entsprechenden Aktionen für Stacks und andere Dienste zulassen. AWS OpsWorks AWS Über die Berechtigung iam:PassRole kann AWS OpsWorks Stacks die Service-Rolle in Ihrem Namen übernehmen. Weitere Informationen zu den AWS OpsWorks Stacks API finden Sie unter Referenz. AWS OpsWorks API

Im Folgenden finden Sie ein Beispiel IAM für eine Richtlinie, die es Ihnen ermöglicht, jede AWS OpsWorks Stacks-Aktion von einer EC2 Instance aus sowie jede Amazon EC2 - oder Amazon S3 S3-Aktion aufzurufen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "s3:*", "opsworks:*", "iam:PassRole" ], "Resource": "arn:aws:ec2:region:account_id:instance/*", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }
Anmerkung

Wenn Sie dies nicht zulasseniam:PassRole, schlägt jeder Versuch, eine AWS OpsWorks Stacks-Aktion aufzurufen, mit einem Fehler wie dem folgenden fehl:

User: arn:aws:sts::123456789012:federated-user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:sts::123456789012:role/OpsWorksStackIamRole

Weitere Informationen zur Verwendung von Rollen auf einer EC2 Instance für Berechtigungen finden Sie unter Gewähren von Zugriff auf AWS Ressourcen für Anwendungen, die auf EC2 Amazon-Instances ausgeführt werden im AWS Identity and Access Management Benutzerhandbuch.