Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Politiche IAM di Amazon SWF
Una policy IAM contiene uno o più Statement
elementi, ognuno dei quali contiene un set di elementi che definiscono la policy. Per un elenco completo degli elementi e una discussione generale su come costruire le politiche, vedi The Access Policy Language. Il controllo degli accessi di Amazon SWF si basa sui seguenti elementi:
- Effetto
-
(Obbligatorio) L'effetto dell'istruzione:
deny
oallow
.Nota
È necessario consentire esplicitamente l'accesso; IAM nega l'accesso per impostazione predefinita.
- Risorsa
-
(Obbligatoria) La risorsa, un'entità in un AWS servizio con cui un utente può interagire, a cui si applica l'istruzione.
Puoi esprimere autorizzazioni a livello di risorsa solo per i domini. Ad esempio, una policy può consentire l'accesso soltanto a determinati domini nel tuo account. Per esprimere le autorizzazioni per un dominio, imposta
Resource
l'Amazon Resource Name (ARN) del dominio, che ha il formato «Region
arn:aws:swf::: /domain/».AccountID
DomainName
Region
è la AWS regione, è l'ID dell'account senzaAccountID
trattini ed è il nome di dominio.DomainName
- Azione
-
(Obbligatorio) L'azione a cui si applica l'istruzione, a cui si fa riferimento utilizzando il seguente formato:
serviceId
:action
. Per Amazon SWF, imposta suserviceID
.swf
Ad esempio,swf:StartWorkflowExecution
si riferisce all'StartWorkflowExecutionazione e viene utilizzato per controllare quali utenti sono autorizzati ad avviare flussi di lavoro.Se concedi l'autorizzazione all'uso RespondDecisionTaskCompleted, puoi anche controllare l'accesso all'elenco di decisioni incluso utilizzando
Action
to express le autorizzazioni per la pseudo API. Poiché IAM nega l'accesso per impostazione predefinita, la decisione di chi decide deve essere esplicitamente consentita o non verrà accettata. Puoi utilizzare un valore*
per consentire tutte le decisioni. - Condizione
-
(Facoltativo) Esprime un vincolo su uno o più parametri di un'operazione che limita i valori consentiti.
Le azioni di Amazon SWF hanno spesso un ambito ampio, che puoi ridurre utilizzando le condizioni IAM. Ad esempio, per limitare gli elenchi di attività a cui l'PollForActivityTaskazione è autorizzata a accedere, includi a
Condition
e utilizza laswf:taskList.name
chiave per specificare gli elenchi consentiti.Puoi esprimere vincoli per le entità elencate di seguito.
-
Il tipo di flusso di lavoro. Il nome e la versione hanno chiavi distinte.
-
Il tipo di attività. Il nome e la versione hanno chiavi distinte.
-
Elenchi di task.
-
Tags. Puoi specificare più tag per alcune operazioni. In tal caso, ogni tag ha una chiave distinta.
Nota
Per Amazon SWF, i valori sono tutte stringhe, quindi è possibile vincolare un parametro utilizzando un operatore di stringa come
StringEquals
, che limita il parametro a una stringa specificata. Tuttavia, con gli operatori di confronto di tipo stringa standard comeStringEquals
tutte le richieste devono includere il parametro. Se non includi il parametro in modo esplicito e non esiste alcun valore di default, come l'elenco di task di default specificato durante la registrazione del tipo, l'accesso verrà negato.È spesso utile considerare le condizioni come facoltative, di modo che sia possibile chiamare un'operazione senza necessariamente includere il parametro associato. Ad esempio, potresti voler consentire a un decisore di specificare un insieme di RespondDecisionTaskCompleteddecisioni, ma anche consentirgli di specificarne solo una per ogni chiamata particolare. In tal caso, applichi un vincolo ai parametri appropriati utilizzando un operatore
StringEqualsIfExists
, che consente l'accesso se il parametro soddisfa la condizione, ma che non lo nega se il parametro è assente.Per un elenco completo dei parametri a cui è possibile applicare un vincolo e delle chiavi associate, consulta Riepilogo delle API.
-
La sezione seguente fornisce esempi di come creare policy di Amazon SWF. Per informazioni dettagliate, consulta la sezione relativa alle condizioni di stringa.
Scrittura di politiche per Amazon SWF
Un flusso di lavoro è composto da più attori: attività, decisori e così via. Puoi controllare l'accesso per ogni attore allegando una policy IAM appropriata.
Con la seguente azione, all'attore verrà concesso l'accesso completo all'account in tutte le regioni:
Operazione:
swf:*
Risorsa:
arn:aws:swf:*:123456789012:/domain/*
Puoi utilizzare i caratteri jolly per rappresentare più risorse, operazioni o regioni con un singolo valore.
-
Il primo carattere jolly (
*
) nelResource
valore indica che le autorizzazioni delle risorse si applicano a tutte le regioni.Per limitare le autorizzazioni a una singola regione, sostituisci il carattere jolly con la stringa di regione appropriata, ad esempio us-east-1.
-
Il secondo carattere jolly (
*
) nel valoreResource
consente all'attore di accedere a qualsiasi dominio dell'account nelle regioni specificate. -
Il carattere jolly (
*
) nelAction
valore consente all'attore di richiamare qualsiasi azione Amazon SWF.
Per informazioni dettagliate su come utilizzare i caratteri jolly, consulta la sezione relativa alle descrizioni degli elementi.
Autorizzazioni di dominio
Per limitare i flussi di lavoro di un reparto a un determinato dominio, puoi concedere un'autorizzazione che consenta a un attore di eseguire qualsiasi azione, ma solo per un reparto specifico.
Per concedere a un attore l'accesso a più di un dominio, esprimi l'autorizzazione per ogni dominio sotto forma di un elenco di dichiarazioni:
-
Operazione:
swf:*
-
Risorsa:
arn:aws:swf:*:123456789012:/domain/department1
-
Risorsa:
arn:aws:swf:*:123456789012:/domain/department2
Puoi consentire a un attore di utilizzare qualsiasi azione Amazon SWF nei domini department1
anddepartment2
. A volte, puoi anche utilizzare i caratteri jolly per rappresentare più domini.
Vincoli e autorizzazioni dell'API
Puoi controllare le azioni che un attore può utilizzare specificando l'azione nell'elemento. Action
Con l'azione seguente, un attore può chiamare solo StartWorkflowExecution
per avviare flussi di lavoro. Non può utilizzare altre azioni.
-
Operazione:
swf:StartWorkflowExecution
Condizioni
Facoltativamente, puoi limitare i valori dei parametri consentiti dell'azione utilizzando un elemento. Condition
Per limitare i flussi di lavoro che un attore può avviare, vincola uno o più valori dei StartWorkflowExecution
parametri nel modo seguente:
"Condition" : { "StringEquals" : { "swf:workflowType.name" : "workflow1", "swf:workflowType.version" : "version2" } }
Un attore con i vincoli precedenti può eseguire solo version2
di workflow1
ed entrambi i parametri devono essere inclusi nella richiesta.
Puoi applicare un vincolo a un parametro senza che questo sia incluso in una richiesta utilizzando un operatore StringEqualsIfExists
, come illustrato di seguito:
"Condition" : { "StringEqualsIfExists" : { "swf:taskList.name" : "task_list_name" } }
Un attore con la politica precedente può facoltativamente specificare un elenco di attività quando avvia l'esecuzione di un flusso di lavoro.
Puoi applicare un vincolo a un elenco di tag per alcune operazioni. Ogni tag ha una chiave separata, che puoi usare swf:tagList.member.0
per vincolare il primo tag dell'elenco, swf:tagList.member.1
per vincolare il secondo tag dell'elenco e così via, fino a un massimo di 5.
Devi stare attento a come vincoli gli elenchi di tag. Ad esempio, la seguente condizione non è consigliata.
La seguente condizione non è consigliata perché consente di specificare facoltativamente una delle due some_ok_tag
oanother_ok_tag
. Tuttavia, la Condizione limita solo il primo elemento dell'elenco dei tag. L'elenco potrebbe contenere elementi aggiuntivi con valori arbitrari, tutti consentiti perché la condizione non applica alcuna condizione a swf:tagList.member.1
swf:tagList.member.2
, e così via.
// Example to illustrate an insecure Condition "Condition" : { "StringEqualsIfExists" : { "swf:tagList.member.0" : "some_ok_tag", "another_ok_tag" } }
Un modo per risolvere il problema precedente consiste nel non consentire l'uso di elenchi di tag.
La policy seguente autorizza soltanto some_ok_tag
o another_ok_tag
in quanto impone la presenza di un solo elemento nell'elenco.
"Condition" : { "StringEqualsIfExists" : { "swf:tagList.member.0" : "some_ok_tag", "another_ok_tag" }, "Null" : { "swf:tagList.member.1" : "true" } }
Vincoli e autorizzazioni della pseudo API
Per limitare le decisioni disponibiliRespondDecisionTaskCompleted
, devi prima consentire all'attore di chiamareRespondDecisionTaskCompleted
. Quindi esprimete le autorizzazioni per i membri della pseudo API appropriati utilizzando la stessa sintassi dell'API normale, come segue:
-
Dichiarazione 1
Risorsa:
arn:aws:swf:*:123456789012:/domain/*
Operazione:
swf:RespondDecisionTaskCompleted
-
Dichiarazione 2
Risorsa:
*
Operazione:
swf:ScheduleActivityTask
Condizione:
"StringEquals" : { "swf:activityType.name" : "SomeActivityType" }
La prima Statement
consente all'attore di chiamareRespondDecisionTaskCompleted
. La seconda dichiarazione consente all'attore di utilizzare la ScheduleActivityTask
decisione di indirizzare Amazon SWF a pianificare un'attività. Per consentire tutte le decisioni, sostituisci «swf:ScheduleActivityTask" con «swf: *».
Per applicare un vincolo ai parametri, puoi utilizzare gli operatori di condizione, esattamente come con l'API classica. L'StringEquals
operatore dell'esempio precedente Condition
consente di RespondDecisionTaskCompleted
pianificare un'attività per l'SomeActivityType
attività e deve pianificare tale attività. Se intendi consentire a RespondDecisionTaskCompleted
di utilizzare facoltativamente un valore di parametro, puoi invece utilizzare l'operatore StringEqualsIfExists
.
AWS politica gestita: SimpleWorkflowFullAccess
È possibile allegare la policy SimpleWorkflowFullAccess
alle identità IAM.
Questa policy fornisce l'accesso completo al servizio di configurazione Amazon SWF.
Limitazioni del modello di servizio sulle politiche IAM
È necessario considerare i vincoli del modello di servizio durante la creazione delle policy IAM. È possibile creare una policy IAM sintatticamente valida che rappresenti una richiesta Amazon SWF non valida; una richiesta consentita in termini di controllo degli accessi può comunque fallire perché non è valida.
Ad esempio, il modello di servizio Amazon SWF non consente l'utilizzo tagFilter
dei parametri typeFilter
and nella stessa ListOpenWorkflowExecutions
richiesta. La condizione seguente consentirebbe le chiamate che il servizio rifiuterà, ValidationException
lanciandole, come richieste non valide:
"Condition" : { "StringEquals" : { "swf:typeFilter.name" : "workflow_name", "swf:typeFilter.version" : "workflow_version", "swf:tagFilter.tag" : "some_tag" } }