Esempi di policy basate su identità per Amazon Elastic Container Service
Di default, gli utenti e i ruoli non dispongono dell'autorizzazione per creare o modificare risorse di Amazon ECS. Inoltre, non sono in grado di eseguire attività utilizzando la AWS Management Console, l'AWS Command Line Interface (AWS CLI) o l'API AWS. Per concedere agli utenti l'autorizzazione a eseguire operazioni sulle risorse di cui hanno bisogno, un amministratore IAM può creare policy IAM. L'amministratore può quindi aggiungere le policy IAM ai ruoli e gli utenti possono assumere i ruoli.
Per informazioni su come creare una policy basata su identità IAM utilizzando questi documenti di policy JSON di esempio, consulta Creazione di policy IAM (console) nella Guida per l'utente IAM.
Per informazioni dettagliate sulle operazioni e sui tipi di risorse definiti da Amazon ECS, incluso il formato degli ARN per ogni tipo di risorse, consulta Operazioni, risorse e chiavi di condizione per Amazon Elastic Container Service in Service Authorization Reference (Guida di riferimento per l'autorizzazione del servizio).
Argomenti
Best practice relative alle policy Amazon ECS
Le policy basate su identità determinano se qualcuno può creare, accedere o eliminare risorse Amazon ECS nell'account. Queste azioni possono comportare costi aggiuntivi per l'Account AWS. Quando crei o modifichi policy basate su identità, segui queste linee guida e raccomandazioni:
-
Nozioni di base sulle policy gestite da AWSe passaggio alle autorizzazioni con privilegio minimo: per le informazioni di base su come concedere autorizzazioni a utenti e carichi di lavoro, utilizza le policy gestite da AWSche concedono le autorizzazioni per molti casi d'uso comuni. Sono disponibili nel tuo Account AWS. Ti consigliamo pertanto di ridurre ulteriormente le autorizzazioni definendo policy gestite dal cliente di AWS specifiche per i tuoi casi d'uso. Per ulteriori informazioni, consulta Policy gestite da AWSo Policy gestite da AWSper le funzioni dei processi nella Guida per l'utente IAM.
-
Applica le autorizzazioni con privilegio minimo: quando imposti le autorizzazioni con le policy IAM, concedi solo le autorizzazioni richieste per eseguire un'attività. È possibile farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come autorizzazioni con privilegi minimi. Per ulteriori informazioni sull'utilizzo di IAM per applicare le autorizzazioni, consulta Policy e autorizzazioni in IAM nella Guida per l'utente IAM.
-
Condizioni d'uso nelle policy IAM per limitare ulteriormente l'accesso: per limitare l'accesso a operazioni e risorse è possibile aggiungere una condizione alle tue policy. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando SSL. È possibile inoltre utilizzare le condizioni per concedere l'accesso alle operazioni di servizio, ma solo se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio CloudFormation. Per ulteriori informazioni, consulta la sezione Elementi delle policy JSON di IAM: condizione nella Guida per l'utente IAM.
-
Utilizzo di IAM Access Analyzer per convalidare le policy IAM e garantire autorizzazioni sicure e funzionali: IAM Access Analyzer convalida le policy nuove ed esistenti in modo che aderiscano alla sintassi della policy IAM (JSON) e alle best practice di IAM. IAM Access Analyzer offre oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Per ulteriori informazioni, consulta Convalida delle policy per il Sistema di analisi degli accessi IAM nella Guida per l'utente IAM.
-
Richiesta dell'autenticazione a più fattori (MFA): se hai uno scenario che richiede utenti IAM o utenti root nel tuo Account AWS, attiva MFA per una maggiore sicurezza. Per richiedere la MFA quando vengono chiamate le operazioni API, aggiungi le condizioni MFA alle policy. Per ulteriori informazioni, consulta Protezione dell'accesso API con MFA nella Guida per l'utente IAM.
Per maggiori informazioni sulle best practice in IAM, consulta Best practice di sicurezza in IAM nella Guida per l'utente di IAM.
Consenti agli utenti Amazon ECS di visualizzare le proprie autorizzazioni
Questo esempio mostra in che modo è possibile creare una policy che consente agli utenti IAM di visualizzare le policy inline e gestite che sono cpllegate alla relativa identità utente. La policy include le autorizzazioni per completare questa azione sulla console o a livello di programmazione utilizzando la AWS CLIo l'API AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
Esempi di cluster Amazon ECS
La seguente policy IAM concede le autorizzazioni per creare ed elencare i cluster. Le operazioni CreateCluster e ListClusters non accettano risorse, pertanto la definizione delle risorse è impostata su * per tutte le risorse.
La seguente policy IAM concede le autorizzazioni per descrivere ed eliminare un determinato cluster. Le operazioni DescribeClusters e DeleteCluster accettano gli ARN del cluster come risorse.
La seguente policy IAM può essere collegata a un utente o a un gruppo per permettere solo a tale utente o gruppo di eseguire operazioni su un determinato cluster.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecs:Describe*", "ecs:List*" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListContainerInstances", "ecs:RegisterContainerInstance", "ecs:SubmitContainerStateChange", "ecs:SubmitTaskStateChange" ], "Effect": "Allow", "Resource": "arn:aws:ecs:us-east-1:111122223333:cluster/default" }, { "Action": [ "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:UpdateContainerAgent", "ecs:StartTask", "ecs:StopTask", "ecs:RunTask" ], "Effect": "Allow", "Resource": "*", "Condition": { "ArnEquals": {"ecs:cluster": "arn:aws:ecs:us-east-1:111122223333:cluster/default"} } } ] }
Esempi di istanze di container Amazon ECS
La registrazione delle istanze di container viene gestita dall'agente Amazon ECS ma, in alcuni casi, puoi permettere a un utente di revocare manualmente la registrazione di un'istanza in un cluster. Ad esempio, se l'istanza di container è stata accidentalmente registrata nel cluster sbagliato o se l'istanza è stata interrotta con attività ancora in esecuzione.
La seguente policy IAM permette a un utente di elencare e revocare la registrazione delle istanze di container in un determinato cluster:
Esempi di definizioni di attività Amazon ECS
Le policy IAM delle definizioni di attività non supportano le autorizzazioni a livello di risorsa, ma le seguenti policy IAM permettono a un utente di registrare, elencare e descrivere le definizioni di attività:
Se utilizzi la console, devi aggiungere CloudFormation: CreateStack come Action.
Esegui esempio di attività Amazon ECS
Le risorse per RunTask sono definizioni di attività. Per limitare i cluster su cui un utente può eseguire le definizioni di attività, puoi specificarli nel blocco Condition. Il vantaggio è che non dovrai elencare sia le definizioni di attività che i cluster nelle tue risorse per consentire un accesso appropriato. Puoi utilizzarne uno o entrambi.
La seguente policy IAM concede l'autorizzazione per eseguire qualsiasi revisione di una specifica definizione di attività in un determinato cluster:
Avvia esempio di attività Amazon ECS
Le risorse per StartTask sono definizioni di attività. Per limitare i cluster e le istanze di container su cui un utente può avviare le definizioni di attività, puoi specificarli nel blocco Condition. Il vantaggio è che non dovrai elencare sia le definizioni di attività che i cluster nelle tue risorse per consentire un accesso appropriato. Puoi utilizzarne uno o entrambi.
La seguente policy IAM concede l'autorizzazione per avviare qualsiasi revisione di una specifica definizione di attività in un cluster o un'istanza di container determinati.
Nota
Per questo esempio, quando chiami l'API StartTask con AWS CLI o un altro kit SDK AWS, devi specificare la revisione della definizione di attività in modo che la mappatura delle Resource corrisponde.
Elenca e descrivi alcuni esempi di attività Amazon ECS.
La seguente policy IAM permette a un utente di descrivere uno specifico processo in un determinato cluster:
Crea un esempio di servizio Amazon ECS
La seguente policy IAM permette a un utente di creare servizi Amazon ECS nella AWS Management Console:
Descrizione dei servizi Amazon ECS basati su tag
Puoi utilizzare condizioni nella policy basata su identità per controllare l'accesso alle risorse Amazon ECS in base ai tag. Questo esempio illustra il modo in cui è possibile creare una policy che consente di descrivere i servizi. Tuttavia, l'autorizzazione viene concessa solo se il valore del tag del servizio Owner è quello del nome utente dell'utente. Questa policy concede anche le autorizzazioni necessarie per completare questa azione nella console.
Puoi allegare questa policy agli utenti IAM nel tuo account. Se un utente denominato richard-roe prova a descrivere un servizio Amazon ECS, il servizio deve avere il tag Owner=richard-roe o owner=richard-roe. In caso contrario l'accesso è negato. La chiave di tag di condizione Owner corrisponde a Owner e owner perché i nomi delle chiavi di condizione non effettuano la distinzione tra maiuscole e minuscole. Per ulteriori informazioni, consulta la sezione Elementi delle policy JSON di IAM: condizione nella Guida per l'utente di IAM.
Esempio di negazione della sostituzione del namespace di Amazon ECS Service Connect
La seguente policy IAM impedisce a un utente di sovrascrivere lo spazio dei nomi predefinito di Service Connect in una configurazione di servizio. Lo spazio dei nomi predefinito è impostato nel cluster. Tuttavia, puoi sovrascrivere il parametro in una configurazione del servizio. Per coerenza, valuta la possibilità di impostare tutti i nuovi servizi in modo che utilizzino lo stesso spazio dei nomi. Utilizza le seguenti chiavi di contesto per richiedere ai servizi di utilizzare uno spazio dei nomi specifico. Nel seguente esempio, sostituisci <region>, <aws_account_id>, <cluster_name> e <namespace_id> con i tuoi valori.