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à.
AWS Step Functions può eseguire codice e accedere alle AWS risorse (ad esempio invocando una AWS Lambda funzione). Per garantire la sicurezza, è necessario concedere l'accesso a Step Functions a quelle risorse utilizzando un ruolo IAM.
I Tutorial per imparare Step Functions contenuti di questa guida consentono di sfruttare i ruoli IAM generati automaticamente e validi per la AWS regione in cui viene creata la macchina a stati. Tuttavia, puoi creare il tuo ruolo IAM per una macchina a stati.
Quando si crea una policy IAM da utilizzare per le macchine a stati, la policy deve includere le autorizzazioni che si desidera vengano concesse alle macchine a stati. Puoi utilizzare una policy AWS gestita esistente come esempio oppure puoi creare una policy personalizzata partendo da zero che soddisfi le tue esigenze specifiche. Per ulteriori informazioni, consulta Creazione di politiche IAM nella Guida per l'utente IAM
Per creare il tuo ruolo IAM per una macchina a stati, segui i passaggi in questa sezione.
In questo esempio, crei un ruolo IAM con il permesso di richiamare una funzione Lambda.
Creare un ruolo per Step Functions
-
Accedi alla console IAM
, quindi scegli Ruoli, Crea ruolo. -
Nella pagina Seleziona entità affidabile, in AWS servizio, seleziona Step Functions dall'elenco, quindi scegli Avanti: Autorizzazioni.
-
Nella pagina Attached permissions policy (Policy autorizzazioni collegate) scegliere Next: Review (Successivo: Esamina).
-
Nella pagina Review (Esamina), immettere
StepFunctionsLambdaRole
in Role Name (Nome ruolo), quindi scegliere Create role (Crea ruolo).Il ruolo IAM viene visualizzato nell'elenco dei ruoli.
Per ulteriori informazioni sulle autorizzazioni e le policy IAM, consulta Access Management nella IAM User Guide.
Evita problemi secondari confusi tra diversi servizi
Con "confused deputy" si intende un problema di sicurezza in cui un'entità che non dispone dell'autorizzazione per eseguire una certa operazione può costringere un'entità con più privilegi a eseguire tale operazione. Nel AWS, l'impersonificazione tra servizi può causare il problema del sostituto confuso. La rappresentazione tra servizi può verificarsi quando un servizio (il servizio chiamante) effettua una chiamata a un altro servizio (il servizio chiamato). Questo tipo di impersonificazione può avvenire tra diversi account e tra diversi servizi. Il servizio chiamante può essere manipolato per utilizzare le proprie autorizzazioni e agire sulle risorse di un altro cliente, a cui normalmente non avrebbe accesso.
Per evitare la confusione dei deputati, AWS offre strumenti che consentono di proteggere i dati relativi a tutti i servizi, con responsabili del servizio a cui è stato consentito l'accesso alle risorse del vostro account. Questa sezione si concentra sulla prevenzione interservizio dei deputati confusi, specifica per AWS Step Functions; tuttavia, puoi saperne di più su questo argomento nella sezione dedicata ai problemi dei deputati confusi della IAM User Guide.
Ti consigliamo di utilizzare le chiavi di contesto aws:SourceArn
e aws:SourceAccount
global condition nelle politiche delle risorse per limitare le autorizzazioni che Step Functions offre un altro servizio per accedere alle tue risorse. Utilizza aws:SourceArn
se desideri consentire l'associazione di una sola risorsa all'accesso tra servizi. Utilizza aws:SourceAccount
se desideri consentire l'associazione di qualsiasi risorsa in tale account all'uso tra servizi.
Il modo più efficace per proteggersi dal problema "confused deputy" è quello di usare la chiave di contesto della condizione globale aws:SourceArn
con l'ARN completo della risorsa. Se non conosci l'ARN completo della risorsa o se stai specificando più risorse, usa la chiave di condizione di contesto aws:SourceArn
globale con caratteri jolly (*
) per le parti sconosciute dell'ARN. Ad esempio arn:aws:states:*:111122223333:*
.
Ecco un esempio di policy affidabile che mostra come utilizzare aws:SourceArn
e aws:SourceAccount
con Step Functions per prevenire la confusa questione del vice.
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"Service":[
"states.amazonaws.com"
]
},
"Action":"sts:AssumeRole",
"Condition":{
"ArnLike":{
"aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*"
},
"StringEquals":{
"aws:SourceAccount":"111122223333"
}
}
}
]
}
Collegamento di una policy inline
Step Functions può controllare altri servizi direttamente in uno Task
stato. Allega policy in linea per consentire a Step Functions di accedere alle azioni API dei servizi che devi controllare.
-
Apri la console IAM
, scegli Roles, cerca il tuo ruolo Step Functions e seleziona quel ruolo. -
Selezionare Add inline policy (Aggiungi policy inline).
-
Utilizzare il Visual editor (Editor visivo) o la scheda JSON per creare policy per il ruolo.
Per ulteriori informazioni su come AWS Step Functions controllare altri AWS servizi, consultaIntegrazione dei servizi con Step Functions.
Nota
Per esempi di policy IAM create dalla console Step Functions, vediIn che modo Step Functions genera policy IAM per servizi integrati.