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.
SWFIAMAmazon-Richtlinien
Eine IAM Richtlinie enthält ein oder mehrere Statement
Elemente, von denen jedes eine Reihe von Elementen enthält, die die Richtlinie definieren. Eine vollständige Liste der Elemente und eine allgemeine Erläuterung der Erstellung von Richtlinien finden Sie unter The Access Policy Language. Die SWF Amazon-Zugriffskontrolle basiert auf den folgenden Elementen:
- Auswirkung
-
(Erforderlich) Der Effekt der Anweisung:
deny
oderallow
.Anmerkung
Sie müssen den Zugriff ausdrücklich zulassen; IAM verweigert standardmäßig den Zugriff.
- Ressource
-
(Erforderlich) Die Ressource — eine Entität in einem AWS Dienst, mit der ein Benutzer interagieren kann —, für die die Anweisung gilt.
Sie können Ressourcenberechtigungen nur für Domänen erteilen. Beispielsweise kann eine Richtlinie nur Zugriff auf bestimmte Domänen in Ihrem Konto erteilen. Um Berechtigungen für eine Domain auszudrücken, legen Sie
Resource
den Amazon-Ressourcennamen (ARN) der Domain fest, der das Format „arn:aws:swf:Region
:AccountID
:/domain/DomainName
".Region
ist die Region, AWSAccountID
ist die Konto-ID ohne Bindestriche undDomainName
ist der Domainname. - Aktion
-
(Erforderlich) Die Aktion, für die sich die Anweisung bezieht und auf die Sie verweisen, indem Sie das folgende Format verwenden:
serviceId
:action
. Für AmazonSWF, legen Sie festserviceID
zuswf
.swf:StartWorkflowExecution
Bezieht sich beispielsweise auf die StartWorkflowExecutionAktion und wird verwendet, um zu steuern, welche Benutzer Workflows starten dürfen.Wenn Sie eine Nutzungsberechtigung erteilen RespondDecisionTaskCompleted, können Sie auch den Zugriff auf die darin enthaltene Entscheidungsliste kontrollieren, indem Sie die Berechtigungen für das Pseudo
Action
API zum Ausdruck bringen. Da der Zugriff standardmäßig IAM verweigert wird, muss die Entscheidung eines Entscheiders ausdrücklich zugelassen werden, andernfalls wird sie nicht akzeptiert. Mithilfe des*
-Werts können Sie alle Entscheidungen erlauben. - Bedingung
-
(Optional) Drückt eine Einschränkung für einen oder mehrere Parameter einer Aktion aus. Hierdurch werden die zulässigen Werte eingeschränkt.
SWFAmazon-Aktionen haben oft einen großen Umfang, den Sie durch die Verwendung von IAM Bedingungen reduzieren können. Um beispielsweise einzuschränken, auf welche Aufgabenlisten die PollForActivityTaskAktion zugreifen darf, fügen Sie a hinzu
Condition
und geben mit derswf:taskList.name
Taste die zulässigen Listen an.Sie können für die folgenden Entitäten Einschränkungen hinzufügen.
-
Der Workflow-Typ. Der Name und die Version verfügen über separate Schlüssel.
-
Der Aktivitätstyp. Der Name und die Version verfügen über separate Schlüssel.
-
Aufgabenlisten.
-
Tags. Sie können für manche Aktionen mehrere Tags angeben. In diesem Fall verfügt jedes Tag über einen separaten Schlüssel.
Anmerkung
Bei Amazon handelt es sich bei den Werten ausschließlich um ZeichenkettenSWF, sodass Sie einen Parameter einschränken, indem Sie einen Zeichenkettenoperator wie
StringEquals
, verwenden, der den Parameter auf eine bestimmte Zeichenfolge beschränkt. Die regulären Zeichenfolgenoperatoren wieStringEquals
erfordern es jedoch, dass alle Anfragen den Parameter enthalten. Wenn Sie den Parameter nicht ausdrücklich einschließen und kein Standardwert vorliegt, wie beispielsweise die während der Typenregistrierung bereitgestellte standardmäßige Aufgabenliste, wird der Zugriff verweigert.Es empfiehlt sich häufig, Bedingungen als optional zu behandeln, so können Sie eine Aktion auch ohne den zugeordneten Parameter aufrufen. Möglicherweise möchten Sie einem Entscheider die Möglichkeit geben, eine Reihe von RespondDecisionTaskCompletedEntscheidungen anzugeben, aber auch, dass er nur eine davon für einen bestimmten Anruf angeben kann. In diesem Fall beschränken Sie die entsprechenden Parameter mithilfe des
StringEqualsIfExists
-Operators, der den Zugriff gewährt, wenn der Parameter der Bedingung entspricht, bei Abwesenheit des Parameters den Zugriff jedoch verweigert.Eine vollständige Liste der einschränkbaren Parameter sowie der zugeordneten Schlüssel finden Sie unter APIZusammenfassung.
-
Der folgende Abschnitt enthält Beispiele für die Erstellung von SWF Amazon-Richtlinien. Weitere Informationen finden Sie unter Zeichenfolgenbedingungen.
Beispiele SWF für Amazon-Richtlinien
Ein Workflow besteht aus mehreren Akteuren — Aktivitäten, Entscheidern usw. Sie können den Zugriff für jeden Akteur steuern, indem Sie eine entsprechende Richtlinie anhängen. IAM In diesem Abschnitt finden Sie einige Beispiele. Im folgenden Beispiel wird der einfachste Fall dargestellt:
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "swf:*", "Resource" : "arn:aws:swf:*:123456789012:/domain/*" } ] }
Wenn Sie diese Richtlinie einem Akteur anfügen, hat er vollständigen Zugriff auf alle Regionen des Kontos. Sie können Platzhalter verwenden, damit ein einzelner Wert mehrere Ressourcen, Aktionen oder Regionen repräsentiert.
-
Der erste Platzhalter (
*
) imResource
-Wert bedeutet, dass die Ressourcenberechtigungen auf alle Regionen zutreffen. Um die Berechtigungen auf eine einzelne Region zu beschränken, ersetzen Sie den Platzhalter durch die entsprechende Regionszeichenfolge, z. B. us-east-1. -
Der zweite Platzhalter (
*
) imResource
-Wert ermöglicht es dem Akteur, auf jede der zum Konto gehörenden Domänen innerhalb der angegebenen Regionen zuzugreifen. -
Der Platzhalter (
*
) imAction
Wert ermöglicht es dem Akteur, jede SWF Amazon-Aktion aufzurufen.
Weitere Informationen zur Verwendung von Platzhaltern finden Sie unter Beschreibungen der Elemente.
In den folgenden Abschnitten finden Sie Beispielrichtlinien, die die Berechtigungen in einer differenzierteren Art und Weise erteilen.
Domänenberechtigungen
Wenn Sie die Workflows einer Abteilung auf eine bestimmte Domäne beschränken möchten, können Sie folgendermaßen vorgehen:
{ "Version": "2012-10-17", "Statement": [ { "Effect" : "Allow", "Action" : "swf:*", "Resource" : "arn:aws:swf:*:123456789012:/domain/department1" } ] }
Wenn Sie diese Richtlinie einem Akteur anfügen, kann er alle Aktionen aufrufen, aber nur für die Domäne department1.
Wenn Sie möchten, dass ein Akteur Zugriff auf mehr als eine Domäne habt, können Sie die Berechtigungen folgendermaßen separat für die einzelnen Domänen erteilen:
{ "Version": "2012-10-17", "Statement": [ { "Effect" : "Allow", "Action" : "swf:*", "Resource" : "arn:aws:swf:*:123456789012:/domain/department1" }, { "Effect" : "Allow", "Action" : "swf:*", "Resource" : "arn:aws:swf:*:123456789012:/domain/department2" } ] }
Wenn Sie diese Richtlinie an einen Akteur anhängen, kann er jede SWF Amazon-Aktion in den department2
Domänen department1
und verwenden. Manchmal können Sie auch Platzhalter verwenden, um mehrere Domänen zu repräsentieren.
APIBerechtigungen und Einschränkungen
Mit dem Action
-Element können Sie kontrollieren, welche Aktionen ein Akteur verwenden kann. Optional können Sie die zulässigen Parameterwerte einer Aktion mithilfe des Condition
-Elements beschränken.
Wenn Sie den Akteur auf bestimmte Aktionen beschränken möchten, können Sie folgendermaßen vorgehen:
{ "Version": "2012-10-17", "Statement": [ { "Effect" : "Allow", "Action" : "swf:StartWorkflowExecution", "Resource" : "arn:aws:swf:*:123456789012:/domain/department2" } ] }
Wenn Sie diese Richtlinie einem Akteur anfügen, kann er StartWorkflowExecution
aufrufen, um in der department2
-Domäne Workflows zu starten. Er kann keine anderen Aktionen verwenden oder Workflows in anderen Domänen starten.
Indem Sie folgendermaßen einen oder mehrere StartWorkflowExecution
-Parameterwerte beschränken, können Sie zusätzlich einschränken, welche Workflows ein Akteur starten kann:
{ "Version": "2012-10-17", "Statement": [ { "Effect" : "Allow", "Action" : "swf:StartWorkflowExecution", "Resource" : "arn:aws:swf:*:123456789012:/domain/department1", "Condition" : { "StringEquals" : { "swf:workflowType.name" : "workflow1", "swf:workflowType.version" : "version2" } } } ] }
Diese Richtlinie beschränkt die Parameter für die StartWorkflowExecution
-Aktionen name
und version
. Wenn Sie diese Richtlinie einem Akteur anfügen, kann er nur version2
des workflow1
in der Domäne department1
ausführen und beide Parameter müssen in der Anfrage enthalten sein.
Sie können einen Parameter aber auch beschränken, ohne dass er in einer Anfrage enthalten sein muss, indem Sie einen StringEqualsIfExists
-Operator verwenden. Gehen Sie dazu folgendermaßen vor:
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "swf:StartWorkflowExecution", "Resource" : "arn:aws:swf:*:123456789012:/domain/some_domain", "Condition" : { "StringEqualsIfExists" : { "swf:taskList.name" : "task_list_name" } } } ] }
Diese Richtlinie ermöglicht es einem Akteur, beim Start einer Workflow-Ausführung optional eine Aufgabenliste festzulegen.
Sie können für manche Aktionen eine Reihe von Tags beschränken. In diesem Fall besitzt jedes Tag einen eigenen Schlüssel. Sie verwenden swf:tagList.member.0
, um das erste Tag in der Liste einzuschränken, swf:tagList.member.1
, um das zweite Tag in der Liste einzuschränken usw, bis maximal 5 Tags. Allerdings müssen Sie bei der Beschränkung von Taglisten äußerst vorsichtig vorgehen. Das folgende Beispiel zeigt eine Richtlinie, die nicht empfohlen wird:
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "swf:StartWorkflowExecution", "Resource" : "arn:aws:swf:*:123456789012:/domain/some_domain", "Condition" : { "StringEqualsIfExists" : { "swf:tagList.member.0" : "some_ok_tag", "another_ok_tag" } } } ] }
Diese Richtlinie ermöglicht es Ihnen, wahlweise some_ok_tag
oder another_ok_tag
festzulegen. Jedoch beschränkt diese Richtlinie nur das erste Element der Tag-Liste. Diese Liste könnte zusätzliche Elemente mit beliebigen Werten umfassen, die alle zugelassen würden, da diese Richtlinie keine Bedingungen auf swf:tagList.member.1
, swf:tagList.member.2
usw. anwendet.
Eine Möglichkeit, dieses Problem zu beheben, besteht darin, den Einsatz von Tag-Listen zu untersagen. Die folgende Richtlinie stellt sicher, dass nur some_ok_tag
oder another_ok_tag
zulässig sind, da die Liste nur ein Element besitzen darf.
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "swf:StartWorkflowExecution", "Resource" : "arn:aws:swf:*:123456789012:/domain/some_domain", "Condition" : { "StringEqualsIfExists" : { "swf:tagList.member.0" : "some_ok_tag", "another_ok_tag" }, "Null" : { "swf:tagList.member.1" : "true" } } } ] }
APIPseudo-Berechtigungen und Einschränkungen
Wenn Sie die für RespondDecisionTaskCompleted
verfügbaren Entscheidungen beschränken möchten, müssen Sie dem Akteur zunächst die Berechtigung erteilen, RespondDecisionTaskCompleted
aufzurufen. Anschließend können Sie Berechtigungen für die entsprechenden Pseudomember ausdrücken, indem Sie dieselbe Syntax wie für die regulären API Elemente verwendenAPI, und zwar wie folgt:
{ "Version": "2012-10-17", "Statement" : [ { "Resource" : "arn:aws:swf:*:123456789012:/domain/*", "Action" : "swf:RespondDecisionTaskCompleted", "Effect" : "Allow" }, { "Resource" : "*", "Action" : "swf:ScheduleActivityTask", "Effect" : "Allow", "Condition" : { "StringEquals" : { "swf:activityType.name" : "SomeActivityType" } } } ] }
Wenn Sie diese Richtlinie einem Akteur anfügen, ermöglicht das erste Statement
-Element dem Akteur, RespondDecisionTaskCompleted
aufzurufen. Das zweite Element ermöglicht es dem Akteur, die ScheduleActivityTask
Entscheidung zu nutzen, Amazon SWF anzuweisen, eine Aktivitätsaufgabe zu planen. Um alle Entscheidungen zuzulassen, ersetzen Sie „swf:ScheduleActivityTask" durch „swf: *“.
Sie können Bedingungsoperatoren genau wie reguläre API Operatoren verwenden, um Parameter einzuschränken. Der StringEquals
-Operator in dieser Condition
ermöglicht RespondDecisionTaskCompleted
eine Aktivitätsaufgabe für die SomeActivityType
-Aktivität zu planen und er muss diese Aufgabe auch planen. Wenn Sie RespondDecisionTaskCompleted
die Möglichkeit geben wollen, einen Parameterwert zu verwenden, dies aber nicht erforderlich sein soll, können Sie stattdessen den StringEqualsIfExists
-Operator verwenden.
AWS verwaltete Richtlinie: SimpleWorkflowFullAccess
Sie können die SimpleWorkflowFullAccess
Richtlinie an Ihre IAM Identitäten anhängen.
Diese Richtlinie bietet vollen Zugriff auf den SWF Amazon-Konfigurationsservice.
Berechtigungsdetails
Diese Richtlinie umfasst die folgenden Berechtigungen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "swf:*" ], "Resource": "*" } ] }
Servicemodelleinschränkungen bei IAM-Richtlinien
Bei der Erstellung von IAM Richtlinien müssen Sie Einschränkungen des Servicemodells berücksichtigen. Es ist möglich, eine syntaktisch gültige IAM Richtlinie zu erstellen, die eine ungültige SWF Amazon-Anfrage darstellt. Eine Anfrage, die im Hinblick auf die Zugriffskontrolle zulässig ist, kann dennoch fehlschlagen, da es sich um eine ungültige Anfrage handelt.
Beispielsweise wird die folgende Richtlinie für ListOpenWorkflowExecutions
nicht empfohlen:
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "swf:ListOpenWorkflowExecutions", "Resource" : "arn:aws:swf:*:123456789012:/domain/domain_name", "Condition" : { "StringEquals" : { "swf:typeFilter.name" : "workflow_name", "swf:typeFilter.version" : "workflow_version", "swf:tagFilter.tag" : "some_tag" } } } ] }
Das SWF Amazon-Servicemodell erlaubt nicht, dass die tagFilter
Parameter typeFilter
und in derselben ListOpenWorkflowExecutions
Anfrage verwendet werden. Die Richtlinie erlaubt daher Anrufe, die der Service ablehnt — indem er sie ausgibt ValidationException
— als ungültige Anfrage.