So funktioniert Amazon Managed Service für Apache Flink mit IAM - Managed Service für Apache Flink

Amazon Managed Service for Apache Flink (Amazon MSF) war zuvor als Amazon Kinesis Data Analytics for Apache Flink bekannt.

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.

So funktioniert Amazon Managed Service für Apache Flink mit IAM

In Amazon MSF verwenden Sie IAM in den folgenden verschiedenen Kontexten:

Anwendungsberechtigungen

Sie kontrollieren die IAM-Berechtigungen einer Amazon MSF-Anwendung mit der der Anwendung zugewiesenen IAM-Rolle als Teil der Anwendungskonfiguration. Diese IAM-Rolle bestimmt die Zugriffsberechtigungen der Anwendung auf andere Dienste wie Amazon S3, Kinesis Data Streams oder DynamoDB, die IAM für die Autorisierung verwenden.

Warnung

Das Ändern der Berechtigungen für eine Servicerolle kann die Funktionalität von Amazon MSF beeinträchtigen. Stellen Sie sicher, dass Sie der Anwendung nicht die Berechtigungen zum Herunterladen des Anwendungscodes aus dem Amazon S3 S3-Bucket und zum Senden von Protokollen an Amazon entziehen CloudWatch.

Das Zuweisen von Berechtigungen für die Anwendung mithilfe ressourcenbasierter Richtlinien wird nicht unterstützt. Sie können eine Amazon MSF-Anwendung nicht als Principal in einer Richtlinie angeben, die an die Ressource angehängt ist, auf die zugegriffen werden soll.

Berechtigungen für den Zugriff auf den Anwendungscode und die Anwendungsprotokolle

Amazon MSF verwendet auch die Anwendungs-IAM-Rolle, um auf den in einen Amazon S3 S3-Bucket hochgeladenen Anwendungscode zuzugreifen und die Anwendungsprotokolle in Amazon CloudWatch Logs zu schreiben.

Wenn Sie die Anwendung mithilfe der AWS Management Console Option Create/update IAM-Rolle mit erforderlichen Richtlinien in der Anwendungskonfiguration erstellen <role-name>oder aktualisieren, erstellt und ändert Amazon MSF automatisch die IAM-Rolle und weist Amazon S3 und Logs die erforderlichen Berechtigungen zu. CloudWatch

Wenn Sie die IAM-Rolle manuell erstellen oder die Anwendung mithilfe von Automatisierungstools erstellen und verwalten, müssen Sie der IAM-Rolle der Anwendung die folgenden Berechtigungen hinzufügen.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path-to-application-code" ] }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:*" ] }, { "Sid": "ListCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/kinesis-analytics/application-name:log-stream:*" ] }, { "Sid": "PutCloudwatchLogs", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/kinesis-analytics/application-name:log-stream:kinesis-analytics-log-stream" ] } ] }

Serviceübergreifende Confused-Deputy-Prävention

Wenn eine Amazon MSF-Anwendung eine andere aufruft AWS-Service, können Sie detailliertere Zugriffsberechtigungen bereitstellen. Wenn beispielsweise eine IAM-Rolle für mehrere Anwendungen wiederverwendet wird, kann eine Anwendung Zugriff auf eine Ressource erhalten, auf die sie keinen Zugriff haben sollte. Dies wird als das Problem des verwirrten Stellvertreters bezeichnet. Informationen darüber, wie die Ressource, auf die zugegriffen wird, den Zugriff auf eine bestimmte Amazon MSF-Anwendung einschränken kann, finden Sie unterServiceübergreifende Confused-Deputy-Prävention.

Berechtigungen für Anwendungsmanagement und Lebenszykluskontrolle

Aktionen zur Verwaltung der Anwendung und ihres Lebenszyklus, wie, und CreateApplicationStartApplication, werden durch identitätsbasierte Richtlinien gesteuert UpdateApplication, die der Ressource zugeordnet sind, die die Aktion ausführt, z. B. einem IAM-Benutzer, einer IAM-Gruppe oder einer Ressource wie dem AWS Lambda Aufrufen der Amazon MSF-API.

Anmerkung

Die API und das SDK, die den Lebenszyklus der Amazon MSF-Anwendung steuern, werden aus Gründen der Abwärtskompatibilität als Amazon Kinesis Analytics V2 bezeichnet.

Das Zuweisen von Berechtigungen für Aktionen im Lebenszyklus von Anwendungen mithilfe ressourcenbasierter Richtlinien, die der Amazon MSF-Anwendung zugeordnet sind, wird nicht unterstützt. Die Anwendungs-IAM-Rolle wird nicht verwendet, um den Zugriff auf die Aktionen im Anwendungslebenszyklus zu kontrollieren. Sie sollten der Anwendungsrolle keine Berechtigungen für den Anwendungslebenszyklus hinzufügen.

In der folgenden Tabelle sind die IAM-Funktionen aufgeführt, die Sie mit Amazon MSF-Aktionen für den Anwendungslebenszyklus verwenden können.

Richtlinien für den Anwendungslebenszyklus

Unterstützt Richtlinienaktionen: Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff hat. Das heißt, welcher Prinzipal Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen kann.

Das Element Action 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 der zugehörige AWS API-Vorgang. Es gibt einige Ausnahmen, z. B. Aktionen, die nur mit Genehmigung durchgeführt werden können und für die es keinen passenden API-Vorgang gibt. 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 Amazon MSF verwenden das kinesisanalytics Präfix vor der Aktion. Amazon MSF APIs und SDKs verwenden Sie das Amazon Kinesis Analytics V2 Präfix.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie mit Kommata: Das folgende Beispiel zeigt die Syntax für die Angabe von Amazon MSF-Richtlinienaktionen.

"Action" : [ "kinesisanalytics:action1", "kinesisanalytics:action2" ]

Sie können auch mehrere Aktionen mithilfe von Platzhaltern (*) angeben. Beispielsweise können Sie alle Aktionen festlegen, die mit dem Wort Describe beginnen, einschließlich der folgenden Aktion:

"Action": "kinesisanalytics:Describe*"

Eine vollständige Liste aller Amazon MSF-API-Aktionen, die Sie im Action Element einer IAM-Richtlinienerklärung angeben können, finden Sie unter Von Amazon Kinesis Analytics V2 definierte Aktionen.

Beispiele für identitätsbasierte Richtlinien von Amazon MSF finden Sie unter. Beispiele für identitätsbasierte Richtlinien

Ressourcen für Richtlinien zum Anwendungslebenszyklus

Unterstützt Richtlinienressourcen: Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff hat. Das heißt, welcher Prinzipal Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen kann.

Das JSON-Richtlinienelement Resource gibt die Objekte an, auf welche die Aktion angewendet wird. Anweisungen müssen entweder ein – Resourceoder ein NotResource-Element enthalten. Als bewährte Methode geben Sie eine Ressource mit dem zugehörigen Amazon-Ressourcennamen (ARN) an. 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": "*"

Berechtigungen für Amazon MSF-Aktionen im Anwendungslebenszyklus werden für jede Anwendung definiert. Das Resource JSON-Element in einer IAM-Richtlinie definiert die Amazon MSF-Anwendung, für die die Berechtigungen gelten.

Sie können einer einzelnen Anwendung Berechtigungen zuweisen, indem Sie den Anwendungs-ARN angeben, oder einer Gruppe von Anwendungen, indem Sie Platzhalter verwenden. Das folgende Beispiel zeigt die Syntax des Resource Elements.

"Resouce" : "arn:partition:kinesisanalytics:Region:account:application/application-name

Sie können auch Berechtigungen zur Steuerung einer Teilmenge von Anwendungen mithilfe von Platzhaltern zuweisen. Sie können beispielsweise Berechtigungen zur Steuerung aller Anwendungen zuweisen, deren Name mit einem bestimmten Präfix beginnt.

"Resouce" : "arn:partition:kinesisanalytics:Region:account:application/application-name-prefix*

Bedingungsschlüssel für Richtlinien zum Anwendungslebenszyklus

Unterstützt servicespezifische Richtlinienbedingungsschlüssel: Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff 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, wertet AWS diese mittels 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. Beispielsweise können Sie einem IAM-Benutzer die Berechtigung für den Zugriff auf eine Ressource nur dann gewähren, wenn sie mit dessen IAM-Benutzernamen gekennzeichnet ist. Weitere Informationen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags im IAM-Benutzerhandbuch.

AWS unterstützt globale Bedingungsschlüssel und dienstspezifische Bedingungsschlüssel. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter Kontextschlüssel für AWS globale Bedingungen im IAM-Benutzerhandbuch.

Sie können Bedingungsschlüssel verwenden, um die Berechtigungen für Amazon MSF-Aktionen im Anwendungslebenszyklus zu steuern. Eine Liste der Managed Service für Apache Flink-Bedingungsschlüssel finden Sie unter Bedingungsschlüssel für Amazon Managed Service für Apache Flink in der Referenz für die Service-Autorisierung. Informationen dazu, mit welchen Aktionen und Ressourcen Sie einen Bedingungsschlüssel verwenden können, finden Sie unter Von Amazon Managed Service für Apache Flink definierte Aktionen.

Attributbasierte Zugriffskontrolle (ABAC) mit Managed Service für Apache Flink

Unterstützt ABAC (Tags in Richtlinien): Ja

Mithilfe von Bedingungsschlüsseln können Sie die attributebasierte Zugriffskontrolle (ABAC) implementieren. Dabei handelt es sich um eine Autorisierungsstrategie, die Berechtigungen auf der Grundlage von Attributen definiert. In werden AWS diese Attribute als Tags bezeichnet. Sie können Tags an IAM-Entitäten (Benutzer oder Rollen) und an viele AWS Ressourcen anhängen. Das Markieren von Entitäten und Ressourcen ist der erste Schritt von ABAC. Anschließend entwerfen Sie ABAC-Richtlinien, um Operationen zuzulassen, wenn das Tag des Prinzipals mit dem Tag auf der Ressource übereinstimmt, auf die er zugreifen möchte.

ABAC ist in Umgebungen hilfreich, die schnell wachsen, und unterstützt Sie in Situationen, in denen die Richtlinienverwaltung mühsam wird.

Um den Zugriff auf der Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer Richtlinie Tag-Informationen an, indem Sie die Schlüssel aws:ResourceTag/key-name, aws:RequestTag/key-name, oder Bedingung aws:TagKeys verwenden. Wenn ein Service alle drei Bedingungsschlüssel für jeden Ressourcentyp unterstützt, lautet der Wert für den Service Ja. Wenn ein Service alle drei Bedingungsschlüssel für nur einige Ressourcentypen unterstützt, lautet der Wert Teilweise.

Verwenden temporärer Anmeldeinformationen

Unterstützt temporäre Anmeldeinformationen: Ja

Amazon MSF-Aktionen für den Anwendungslebenszyklus unterstützen temporäre Anmeldeinformationen.

Sie verwenden temporäre Anmeldeinformationen, wenn Sie sich mit einer anderen AWS Management Console Methode als einem Benutzernamen und einem Passwort bei der Anmeldung anmelden. Wenn Sie beispielsweise AWS über den Single Sign-On-Link (SSO) Ihres Unternehmens darauf zugreifen, werden bei diesem Vorgang automatisch temporäre Anmeldeinformationen erstellt. Sie erstellen auch automatisch temporäre Anmeldeinformationen, wenn Sie sich als Benutzer bei der Konsole anmelden und dann die Rollen wechseln. Weitere Informationen zum Rollenwechsel finden Sie unter Von einem Benutzer zu einer IAM-Rolle wechseln (Konsole).

Sie können mithilfe der AWS API AWS CLI oder manuell temporäre Anmeldeinformationen erstellen. Sie können diese temporären Anmeldeinformationen dann für den Zugriff verwenden AWS. Wir empfehlen, temporäre Anmeldeinformationen dynamisch zu generieren, anstatt langfristige Zugriffsschlüssel zu verwenden. Weitere Informationen finden Sie unter Temporäre Sicherheitsanmeldeinformationen in IAM.

Dienstübergreifende Prinzipalberechtigungen

Unterstützt Forward Access Sessions (FAS): Ja

Amazon MSF-Aktionen für den Anwendungslebenszyklus unterstützen serviceübergreifende Prinzipalberechtigungen.

Wenn Sie einen IAM-Benutzer oder eine IAM-Rolle verwenden, um Aktionen auszuführen AWS, gelten Sie als Principal. Bei einigen Services könnte es Aktionen geben, die dann eine andere Aktion in einem anderen Service initiieren. Forward Access Sessions (FAS) verwendet die Berechtigungen des Prinzipals, der einen aufruft AWS-Service, in Kombination mit der Anfrage, Anfragen an nachgelagerte Dienste AWS-Service zu stellen. FAS-Anfragen werden nur gestellt, wenn ein Dienst eine Anfrage empfängt, für deren Abschluss Interaktionen mit anderen AWS-Services oder Ressourcen erforderlich sind. In diesem Fall müssen Sie über Berechtigungen zum Ausführen beider Aktionen verfügen. Einzelheiten zu den Richtlinien für FAS-Anfragen finden Sie unter Zugriffssitzungen weiterleiten.

Identitätsbasierte Richtlinien für Managed Service für Apache Flink

Unterstützt Richtlinien auf Identitätsbasis: Ja

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität anfügen können, wie z. B. IAM-Benutzern, -Benutzergruppen oder -Rollen. Diese Richtlinien steuern, welche Aktionen die Benutzer und Rollen für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien im IAM-Benutzerhandbuch.

Mit identitätsbasierten IAM-Richtlinien können Sie angeben, welche Aktionen und Ressourcen zugelassen oder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionen zugelassen oder abgelehnt werden. Sie können den Prinzipal nicht in einer identitätsbasierten Richtlinie angeben, da er für den Benutzer oder die Rolle gilt, dem er zugeordnet ist. Informationen zu sämtlichen Elementen, die Sie in einer JSON-Richtlinie verwenden, finden Sie in der IAM-Referenz für JSON-Richtlinienelemente im IAM-Benutzerhandbuch.

Beispiele für identitätsbasierte Richtlinien für Managed Service für Apache Flink

Beispiele für identitätsbasierte Managed Service für Apache Flink-Richtlinien, finden Sie unter Beispiele für identitätsbasierte Richtlinien für Amazon Managed Service für Apache Flink.

Ressourcenbasierte Richtlinien in Managed Service für Apache Flink

Amazon Managed Service für Apache Flink unterstützt derzeit keine ressourcenbasierte Zugriffskontrolle.

Zugriffskontrolllisten (ACLs) in Managed Service für Apache Flink

Unterstützt ACLs: Nein

Zugriffskontrolllisten (ACLs) steuern, welche Principals (Kontomitglieder, Benutzer oder Rollen) über Zugriffsberechtigungen für eine Ressource verfügen. ACLs ähneln ressourcenbasierten Richtlinien, verwenden jedoch nicht das JSON-Richtliniendokumentformat.

Servicerollen für Managed Service für Apache Flink

Unterstützt Servicerollen: Ja

Eine Servicerolle ist eine IAM-Rolle, die ein Service annimmt, um Aktionen in Ihrem Namen auszuführen. Ein IAM-Administrator kann eine Servicerolle innerhalb von IAM erstellen, ändern und löschen. Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service im IAM-Benutzerhandbuch.

Warnung

Das Ändern der Berechtigungen für eine Servicerolle könnte die Funktionalität von Managed Service für Apache Flink beeinträchtigen. Bearbeiten Sie Servicerollen nur, wenn Managed Service für Apache Flink dazu Anleitungen gibt.

Serviceverknüpfte Rollen für Managed Service für Apache Flink

Unterstützt serviceverknüpfte Rollen: Ja

Eine serviceverknüpfte Rolle ist eine Art von Servicerolle, die mit einer verknüpft ist. AWS-Service Der Service kann die Rolle übernehmen, um eine Aktion in Ihrem Namen auszuführen. Dienstbezogene Rollen werden in Ihrem Dienst angezeigt AWS-Konto und gehören dem Dienst. Ein IAM-Administrator kann die Berechtigungen für Service-verknüpfte Rollen anzeigen, aber nicht bearbeiten.

Details zum Erstellen oder Verwalten von serviceverknüpften Rollen finden Sie unter AWS -Services, die mit IAM funktionieren. Suchen Sie in der Tabelle nach einem Service mit einem Yes in der Spalte Service-linked role (Serviceverknüpfte Rolle). Wählen Sie den Link Yes (Ja) aus, um die Dokumentation für die serviceverknüpfte Rolle für diesen Service anzuzeigen.