Esempi di policy basate su identità per Amazon SQS - Amazon Simple Queue Service

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à.

Esempi di policy basate su identità per Amazon SQS

Per impostazione predefinita, gli utenti e i ruoli IAM non dispongono dell'autorizzazione per creare o modificare risorse Amazon SQS. Per concedere agli utenti l’autorizzazione a eseguire azioni sulle risorse di cui hanno bisogno, un amministratore IAM può creare policy IAM.

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 di IAM.

Per dettagli sulle azioni e sui tipi di risorse definiti da Amazon SQS, incluso il formato di ARNs per ogni tipo di risorsa, consulta Actions, Resources and Condition Keys for Amazon Simple Queue Service nel Service Authorization Reference.

Nota

Quando configuri i lifecycle hook per Amazon EC2 Auto Scaling, non è necessario scrivere una policy per inviare messaggi a una coda Amazon SQS. Per ulteriori informazioni, consulta Amazon EC2 Auto Scaling Lifecycle Hooks nella Amazon User Guide. EC2

Best practice per le policy

Le policy basate sull'identità determinano se qualcuno può creare, accedere o eliminare risorse Amazon SQS nell'account. Queste azioni possono comportare costi aggiuntivi per l’ Account AWS. Quando si creano o modificano policy basate sull’identità, seguire queste linee guida e raccomandazioni:

  • Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni a utenti e carichi di lavoro, utilizza le policy gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per maggiori informazioni, consulta Policy gestite da AWS o Policy gestite da AWS per le funzioni dei processi nella Guida per l’utente di IAM.

  • Applicazione delle autorizzazioni con privilegio minimo - Quando si impostano le autorizzazioni con le policy IAM, concedere 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 privilegio minimo. Per maggiori informazioni sull’utilizzo di IAM per applicare le autorizzazioni, consulta Policy e autorizzazioni in IAM nella Guida per l’utente di IAM.

  • Condizioni d’uso nelle policy IAM per limitare ulteriormente l’accesso - Per limitare l’accesso ad azioni e risorse è possibile aggiungere una condizione alle policy. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando SSL. Puoi anche utilizzare le condizioni per concedere l'accesso alle azioni del servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio CloudFormation. Per maggiori informazioni, consultare la sezione Elementi delle policy JSON di IAM: condizione nella Guida per l’utente di IAM.

  • Utilizzo dello strumento di analisi degli accessi IAM per convalidare le policy IAM e garantire autorizzazioni sicure e funzionali - Lo strumento di analisi degli accessi IAM convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio (JSON) della policy IAM e alle best practice di IAM. Lo strumento di analisi degli accessi IAM offre oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Per maggiori informazioni, consultare Convalida delle policy per il Sistema di analisi degli accessi IAM nella Guida per l’utente di IAM.

  • Richiedi l'autenticazione a più fattori (MFA): se hai uno scenario che richiede utenti IAM o un utente root nel Account AWS tuo, attiva l'MFA per una maggiore sicurezza. Per richiedere la MFA quando vengono chiamate le operazioni API, aggiungere le condizioni MFA alle policy. Per maggiori informazioni, consultare Protezione dell’accesso API con MFA nella Guida per l’utente di IAM.

Per maggiori informazioni sulle best practice in IAM, consulta Best practice di sicurezza in IAM nella Guida per l’utente di IAM.

Utilizzo della console Amazon SQS

Per accedere alla console Amazon Simple Queue Service, è necessario disporre di un set di autorizzazioni minimo. Queste autorizzazioni devono consentirti di elencare e visualizzare i dettagli sulle risorse Amazon SQS presenti nel tuo. Account AWS Se crei una policy basata sull’identità più restrittiva rispetto alle autorizzazioni minime richieste, la console non funzionerà nel modo previsto per le entità (utenti o ruoli) associate a tale policy.

Non è necessario consentire autorizzazioni minime di console per gli utenti che effettuano chiamate solo verso AWS CLI o l'API. AWS Al contrario, è opportuno concedere l’accesso solo alle azioni che corrispondono all’operazione API che stanno cercando di eseguire.

Per garantire che utenti e ruoli possano continuare a utilizzare la console Amazon SQS, collega anche la policy gestita di Amazon AmazonSQSReadOnlyAccess AWS SQS alle entità. Per maggiori informazioni, consulta Aggiunta di autorizzazioni a un utente nella Guida per l’utente di IAM.

Consentire agli utenti di visualizzare le loro 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 collegate alla relativa identità utente. Questa politica include le autorizzazioni per completare questa azione sulla console o utilizzando l'API o a livello di codice. AWS CLI 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": "*" } ] }

Consenti a un utente di creare code

Nell'esempio seguente creiamo una policy che consente a Bob di accedere a tutte le operazioni Amazon SQS, ma solo con code i cui nomi hanno come prefisso la stringa letterale alice_queue_.

Amazon SQS non concede automaticamente al creatore di una coda le autorizzazioni per utilizzare la coda. Pertanto, dobbiamo concedere esplicitamente a Bob le autorizzazioni per l'utilizzo di tutte le azioni Amazon SQS, oltre all'azione CreateQueue nella policy IAM.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sqs:*", "Resource": "arn:aws:sqs:*:123456789012:alice_queue_*" }] }

Consenti agli sviluppatori di scrivere messaggi in una coda condivisa

Nell'esempio seguente, creiamo un gruppo per sviluppatori e alleghiamo una policy che consente al gruppo di utilizzare l'SendMessageazione Amazon SQS, ma solo con la coda che appartiene a quella specificata Account AWS e ha un nome. MyCompanyQueue

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:*:123456789012:MyCompanyQueue" }] }

È possibile utilizzare * invece di SendMessage per concedere le seguenti operazioni a un principale su una coda condivisa: ChangeMessageVisibility, DeleteMessage, GetQueueAttributes, GetQueueUrl, ReceiveMessage e SendMessage.

Nota

Sebbene * includa l'accesso fornito da altri tipi di autorizzazione, Amazon SQS considera le autorizzazioni separatamente. Ad esempio, è possibile concedere le autorizzazioni * e SendMessage a un utente, anche se un * include l'accesso fornito da SendMessage.

Questo concetto si applica anche quando rimuovi un'autorizzazione. Se un principale dispone solo di un'autorizzazione *, la richiesta di rimuovere un'autorizzazione SendMessage, non lascia al principale un'autorizzazione di tipo tutto tranne. Al contrario, la richiesta non ha effetto, perché il principale non dispone di un'autorizzazione SendMessage esplicita. Per lasciare al principale solo l'autorizzazione ReceiveMessage, aggiungi prima l'autorizzazione ReceiveMessage, quindi rimuovi l'autorizzazione *.

Consenti ai manager di ottenere la dimensione generale delle code

Nell'esempio seguente, creiamo un gruppo per manager e alleghiamo una policy che consente al gruppo di utilizzare l'GetQueueAttributesazione Amazon SQS con tutte le code che appartengono all'account specificato. AWS

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sqs:GetQueueAttributes", "Resource": "*" }] }

Consenti a un partner di inviare messaggi a una coda specifica

Puoi eseguire questa operazione utilizzando una policy Amazon SQS o IAM. Se il tuo partner dispone di una Account AWS policy Amazon SQS, potrebbe essere più semplice utilizzare una policy Amazon SQS. Tuttavia, qualsiasi utente dell'azienda del partner che possiede le credenziali AWS di sicurezza può inviare messaggi alla coda. Se desideri limitare l'accesso a un determinato utente o applicazione, devi trattare il partner come un utente della tua azienda e utilizzare una policy IAM anziché una policy Amazon SQS.

In questo esempio vengono effettuate le seguenti operazioni:

  1. Crea un gruppo chiamato WidgetCo a rappresentare l'azienda partner.

  2. Creazione di un utente per l'utente o l'applicazione specifica presso l'azienda del partner che ha bisogno di accedere.

  3. Aggiungere l'utente al gruppo .

  4. Collegamento di una policy che concedere al gruppo l'accesso solo all'azione SendMessage solo per la coda denominata WidgetPartnerQueue.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:*:123456789012:WidgetPartnerQueue" }] }