Wie funktioniert App Runner mit IAM - AWS App Runner

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.

Wie funktioniert App Runner mit IAM

Vor der Verwendung IAM zur Verwaltung des Zugriffs auf AWS App Runner, sollten Sie wissen, welche IAM Funktionen mit App Runner zur Verfügung stehen. Um einen allgemeinen Überblick darüber zu erhalten, wie App Runner und andere AWS Dienste funktionieren mitIAM, siehe AWS Dienste, mit denen funktioniert, finden Sie IAM im IAMBenutzerhandbuch.

Weitere Sicherheitsthemen zu App Runner finden Sie unterSicherheit in App Runner.

Identitätsbasierte Richtlinien von App Runner

Mit IAM identitätsbasierten Richtlinien können Sie zulässige oder verweigerte Aktionen und Ressourcen sowie die Bedingungen angeben, unter denen Aktionen zulässig oder verweigert werden. App Runner unterstützt bestimmte Aktionen, Ressourcen und Bedingungsschlüssel. Weitere Informationen zu allen Elementen, die Sie in einer JSON Richtlinie verwenden, finden Sie unter IAMJSONPolicy Elements Reference im IAMBenutzerhandbuch.

Aktionen

Administratoren können Folgendes verwenden AWS JSONRichtlinien, um festzulegen, wer Zugriff auf was hat. Das bedeutet, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.

Das Action Element einer JSON Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Richtlinienaktionen haben normalerweise denselben Namen wie die zugehörigen AWS APIBetrieb. Es gibt einige Ausnahmen, z. B. Aktionen, für die nur Berechtigungen erforderlich sind und für die es keine entsprechende Operation gibt. API Es gibt auch einige Operationen, die mehrere Aktionen in einer Richtlinie erfordern. Diese zusätzlichen Aktionen werden als abhängige Aktionen bezeichnet.

Schließen Sie Aktionen in eine Richtlinie ein, um Berechtigungen zur Durchführung der zugeordneten Operation zu erteilen.

Richtlinienaktionen in App Runner verwenden vor der Aktion das folgende Präfix:. apprunner: Um beispielsweise jemandem die Erlaubnis zu erteilen, eine EC2 Amazon-Instance mit dem EC2 RunInstances API Amazon-Vorgang auszuführen, nehmen Sie die ec2:RunInstances Aktion in seine Richtlinie auf. Richtlinienanweisungen müssen entweder ein – Actionoder ein NotAction-Element enthalten. App Runner definiert eigene Aktionen, die Aufgaben beschreiben, die Sie mit diesem Service ausführen können.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie wie folgt durch Kommata:

"Action": [ "apprunner:CreateService", "apprunner:CreateConnection" ]

Sie können auch Platzhalter verwenden, um mehrere Aktionen anzugeben. Beispielsweise können Sie alle Aktionen festlegen, die mit dem Wort Describe beginnen, einschließlich der folgenden Aktion:

"Action": "apprunner:Describe*"

Eine Liste der App Runner-Aktionen finden Sie unter Aktionen definiert von AWS App Runnerin der Referenz zur Serviceautorisierung.

Ressourcen

Administratoren können Folgendes verwenden AWS JSONRichtlinien, um festzulegen, wer Zugriff auf was hat. Das bedeutet, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.

Das Resource JSON Richtlinienelement gibt das Objekt oder die Objekte an, für die die Aktion gilt. Anweisungen müssen entweder ein – Resourceoder ein NotResource-Element enthalten. Es hat sich bewährt, eine Ressource mit ihrem Amazon-Ressourcennamen (ARN) anzugeben. Sie können dies für Aktionen tun, die einen bestimmten Ressourcentyp unterstützen, der als Berechtigungen auf Ressourcenebene bezeichnet wird.

Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, z. B. Auflistungsoperationen, einen Platzhalter (*), um anzugeben, dass die Anweisung für alle Ressourcen gilt.

"Resource": "*"

App Runner-Ressourcen haben die folgende ARN Struktur:

arn:aws:apprunner:region:account-id:resource-type/resource-name[/resource-id]

Weitere Informationen zum Format von ARNs finden Sie unter Amazon Resource Names (ARNs) und AWS Service-Namespaces im Allgemeine AWS-Referenz.

Verwenden Sie beispielsweise Folgendes, um den my-service Dienst in Ihrer Anweisung zu spezifizieren: ARN

"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/my-service"

Um alle Dienste anzugeben, die zu einem bestimmten Konto gehören, verwenden Sie den Platzhalter (*):

"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/*"

Einige App Runner-Aktionen, z. B. zum Erstellen von Ressourcen, können nicht für eine bestimmte Ressource ausgeführt werden. In diesen Fällen müssen Sie den Platzhalter (*) verwenden.

"Resource": "*"

Eine Liste der App Runner-Ressourcentypen und ihrer Eigenschaften finden Sie unter RessourcenARNs, definiert von AWS App Runnerin der Referenz zur Serviceautorisierung. Informationen darüber, mit welchen Aktionen Sie die ARN einzelnen Ressourcen spezifizieren können, finden Sie unter Aktionen definiert durch AWS App Runner.

Bedingungsschlüssel

Administratoren können verwenden AWS JSONRichtlinien, um festzulegen, wer Zugriff auf was hat. Das heißt, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.

Das Element Condition (oder Condition block) ermöglicht Ihnen die Angabe der Bedingungen, unter denen eine Anweisung wirksam ist. Das Element Condition ist optional. Sie können bedingte Ausdrücke erstellen, die Bedingungsoperatoren verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt.

Wenn Sie mehrere Condition Elemente in einer Anweisung oder mehrere Schlüssel in einem einzelnen Condition Element angeben, AWS wertet sie mithilfe einer logischen AND Operation aus. Wenn Sie mehrere Werte für einen einzelnen Bedingungsschlüssel angeben, AWS wertet die Bedingung mithilfe einer logischen OR Operation aus. Alle Bedingungen müssen erfüllt werden, bevor die Berechtigungen der Anweisung gewährt werden.

Sie können auch Platzhaltervariablen verwenden, wenn Sie Bedingungen angeben. Sie können einem IAM Benutzer beispielsweise nur dann Zugriff auf eine Ressource gewähren, wenn sie mit seinem IAM Benutzernamen gekennzeichnet ist. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter IAMRichtlinienelemente: Variablen und Tags.

AWS unterstützt globale Bedingungsschlüssel und dienstspezifische Bedingungsschlüssel. Um alle zu sehen AWS globale Bedingungsschlüssel finden Sie unter AWS Kontexttasten für globale Bedingungen im IAMBenutzerhandbuch.

App Runner unterstützt die Verwendung einiger globaler Bedingungsschlüssel. Um alles zu sehen AWS globale Bedingungsschlüssel finden Sie unter AWS Kontexttasten für globale Bedingungen im IAMBenutzerhandbuch.

App Runner definiert eine Reihe von dienstspezifischen Bedingungsschlüsseln. Darüber hinaus unterstützt App Runner die Tag-basierte Zugriffskontrolle, die mithilfe von Bedingungsschlüsseln implementiert wird. Details hierzu finden Sie unter Autorisierung basierend auf App Runner-Tags.

Eine Liste der App Runner-Bedingungsschlüssel finden Sie unter Bedingungsschlüssel für AWS App Runnerin der Referenz zur Serviceautorisierung. Informationen zu den Aktionen und Ressourcen, mit denen Sie einen Bedingungsschlüssel verwenden können, finden Sie unter Aktionen definiert durch AWS App Runner.

Beispiele

Beispiele für identitätsbasierte App Runner-Richtlinien finden Sie unter. Beispiele für identitätsbasierte App Runner-Richtlinien

Ressourcenbasierte App Runner-Richtlinien

App Runner unterstützt keine ressourcenbasierten Richtlinien.

Autorisierung basierend auf App Runner-Tags

Sie können Tags an App Runner-Ressourcen anhängen oder Tags in einer Anfrage an App Runner übergeben. Um den Zugriff auf der Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer Richtlinie Tag-Informationen an, indem Sie die Schlüssel apprunner:ResourceTag/key-name, aws:RequestTag/key-name, oder Bedingung aws:TagKeys verwenden. Weitere Informationen zum Taggen von App Runner-Ressourcen finden Sie unterEinen App Runner-Dienst konfigurieren.

Ein Beispiel für eine identitätsbasierte Richtlinie zur Einschränkung des Zugriffs auf eine Ressource auf der Grundlage der Markierungen dieser Ressource finden Sie unter Steuern des Zugriffs auf App Runner-Dienste anhand von Tags.

App Runner-Benutzerberechtigungen

Um App Runner verwenden zu IAM können, benötigen Benutzer Berechtigungen für App Runner-Aktionen. Eine gängige Methode, Benutzern Berechtigungen zu gewähren, besteht darin, IAM Benutzern oder Gruppen eine Richtlinie zuzuweisen. Weitere Informationen zur Verwaltung von Benutzerberechtigungen finden Sie im IAMBenutzerhandbuch unter Ändern von Benutzerberechtigungen. IAM

App Runner bietet zwei verwaltete Richtlinien, die Sie Ihren Benutzern zuordnen können.

  • AWSAppRunnerReadOnlyAccess— Erteilt Berechtigungen zum Auflisten und Anzeigen von Details zu App Runner-Ressourcen.

  • AWSAppRunnerFullAccess— Erteilt Berechtigungen für alle App Runner-Aktionen.

Für eine detailliertere Kontrolle der Benutzerberechtigungen können Sie eine benutzerdefinierte Richtlinie erstellen und sie an Ihre Benutzer anhängen. Einzelheiten finden Sie im IAMBenutzerhandbuch unter IAMRichtlinien erstellen.

Beispiele für Benutzerrichtlinien finden Sie unterBenutzerrichtlinien.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apprunner:List*", "apprunner:Describe*" ], "Resource": "*" } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": [ "arn:aws:iam::*:role/aws-service-role/apprunner.amazonaws.com/AWSServiceRoleForAppRunner", "arn:aws:iam::*:role/aws-service-role/networking.apprunner.amazonaws.com/AWSServiceRoleForAppRunnerNetworking" ], "Condition": { "StringLike": { "iam:AWSServiceName": [ "apprunner.amazonaws.com", "networking.apprunner.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringLike": { "iam:PassedToService": "apprunner.amazonaws.com" } } }, { "Sid": "AppRunnerAdminAccess", "Effect": "Allow", "Action": "apprunner:*", "Resource": "*" } ] }

App IAM Runner-Rollen

Eine IAMRolle ist eine Entität innerhalb Ihres AWS-Konto das hat spezifische Berechtigungen.

Service-verknüpfte Rollen

Mit Diensten verknüpfte Rollen ermöglichen AWS Dienste für den Zugriff auf Ressourcen in anderen Diensten, um eine Aktion in Ihrem Namen durchzuführen. Mit Diensten verknüpfte Rollen werden in Ihrem IAM Konto angezeigt und gehören dem Dienst. Ein IAM Administrator kann die Berechtigungen für dienstbezogene Rollen anzeigen, aber nicht bearbeiten.

App Runner unterstützt dienstverknüpfte Rollen. Informationen zum Erstellen oder Verwalten von dienstbezogenen App Runner-Rollen finden Sie unter. Verwenden von dienstverknüpften Rollen für App Runner

Servicerollen

Dieses Feature ermöglicht einem Service das Annehmen einer Servicerolle in Ihrem Namen. Diese Rolle gewährt dem Service Zugriff auf Ressourcen in anderen Diensten, um eine Aktion in Ihrem Namen auszuführen. Servicerollen werden in Ihrem IAM Konto angezeigt und gehören dem Konto. Das bedeutet, dass ein IAM Benutzer die Berechtigungen für diese Rolle ändern kann. Dies kann jedoch die Funktionalität des Dienstes beeinträchtigen.

App Runner unterstützt einige Servicerollen.

Rolle „Zugriff“

Die Zugriffsrolle ist eine Rolle, die App Runner für den Zugriff auf Bilder in Amazon Elastic Container Registry (AmazonECR) in Ihrem Konto verwendet. Es ist erforderlich, um auf ein Bild in Amazon zuzugreifenECR, und ist bei Amazon ECR Public nicht erforderlich. Bevor Sie einen Service erstellen, der auf einem Image in Amazon basiertECR, verwenden Sie, IAM um eine Servicerolle zu erstellen und die darin AWSAppRunnerServicePolicyForECRAccess enthaltene verwaltete Richtlinie zu verwenden. Sie können diese Rolle dann an App Runner übergeben, wenn Sie das CreateServiceAPIAuthenticationConfigurationMitglied des SourceConfigurationParameters aufrufen oder wenn Sie die App Runner-Konsole verwenden, um einen Service zu erstellen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:DescribeImages", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Anmerkung

Wenn Sie Ihre eigene benutzerdefinierte Richtlinie für Ihre Zugriffsrolle erstellen, müssen Sie diese "Resource": "*" für die ecr:GetAuthorizationToken Aktion angeben. Tokens können für den Zugriff auf jede ECR Amazon-Registrierung verwendet werden, auf die Sie Zugriff haben.

Achten Sie beim Erstellen Ihrer Zugriffsrolle darauf, eine Vertrauensrichtlinie hinzuzufügen, die den App Runner-Service Principal build.apprunner.amazonaws.com als vertrauenswürdige Entität deklariert.

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

Wenn Sie die App Runner-Konsole verwenden, um einen Dienst zu erstellen, kann die Konsole automatisch eine Zugriffsrolle für Sie erstellen und diese für den neuen Dienst auswählen. In der Konsole werden auch andere Rollen in Ihrem Konto aufgeführt, und Sie können bei Bedarf eine andere Rolle auswählen.

Instanzrolle

Die Instanzrolle ist eine optionale Rolle, die App Runner verwendet, um Berechtigungen zu erteilen AWS Dienstaktionen, die die Recheninstanzen Ihres Dienstes benötigen. Sie müssen App Runner eine Instanzrolle zur Verfügung stellen, wenn Ihr Anwendungscode aufruft AWS Aktionen (APIs). Betten Sie entweder die erforderlichen Berechtigungen in Ihre Instanzrolle ein oder erstellen Sie Ihre eigene benutzerdefinierte Richtlinie und verwenden Sie sie in der Instanzrolle. Wir können nicht vorhersehen, welche Aufrufe Ihr Code verwendet. Daher bieten wir zu diesem Zweck keine verwaltete Richtlinie an.

Bevor Sie einen App Runner-Dienst erstellen, verwenden Sie diese IAM Option, um eine Servicerolle mit den erforderlichen benutzerdefinierten oder eingebetteten Richtlinien zu erstellen. Sie können diese Rolle dann als Instanzrolle an App Runner übergeben, wenn Sie das CreateServiceAPIInstanceRoleArnMitglied des InstanceConfigurationParameters aufrufen oder wenn Sie die App Runner-Konsole verwenden, um einen Dienst zu erstellen.

Achten Sie beim Erstellen Ihrer Instanzrolle darauf, eine Vertrauensrichtlinie hinzuzufügen, die den App Runner-Dienstprinzipal tasks.apprunner.amazonaws.com als vertrauenswürdige Entität deklariert.

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

Wenn Sie die App Runner-Konsole verwenden, um einen Dienst zu erstellen, listet die Konsole die Rollen in Ihrem Konto auf, und Sie können die Rolle auswählen, die Sie zu diesem Zweck erstellt haben.

Informationen zum Erstellen eines Dienstes finden Sie unterEinen App Runner-Dienst erstellen.