Ruoli di servizio per CloudFormation - AWS Guida prescrittiva

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

Ruoli di servizio per CloudFormation

Un ruolo di servizio è un ruolo AWS Identity and Access Management (IAM) che consente di AWS CloudFormation creare, aggiornare o eliminare risorse dello stack. Se non fornisci un ruolo di servizio, CloudFormation utilizza le credenziali del principale IAM per eseguire le operazioni dello stack. Se crei un ruolo di servizio CloudFormation e lo specifichi durante la creazione dello stack, CloudFormation utilizza le credenziali del ruolo di servizio per eseguire le operazioni, anziché le credenziali del principale IAM.

Quando si utilizza un ruolo di servizio, la policy basata sull'identità associata al principale IAM non richiede autorizzazioni per fornire tutte le risorse definite nel modello. AWS CloudFormation Se non siete pronti a fornire AWS risorse per operazioni aziendali critiche attraverso una pipeline di sviluppo (una best practice AWS consigliata), l'utilizzo di un ruolo di servizio può aggiungere un ulteriore livello di protezione per la gestione delle risorse. AWS I vantaggi di questo approccio sono:

  • I responsabili IAM dell'organizzazione seguono un modello con privilegi minimi che impedisce loro di creare o modificare AWS manualmente le risorse nell'ambiente.

  • Per creare, aggiornare o eliminare le AWS risorse, i dirigenti IAM devono utilizzare. CloudFormation Ciò standardizza l'approvvigionamento delle risorse tramite l'infrastruttura come codice.

Ad esempio, per creare uno stack che contenga un'istanza Amazon Elastic Compute Cloud EC2 (Amazon), il responsabile IAM deve disporre delle autorizzazioni per creare EC2 istanze tramite la propria policy basata sull'identità. CloudFormation Può invece assumere un ruolo di servizio che dispone delle autorizzazioni per creare istanze per conto del principale. EC2 Con questo approccio, il responsabile IAM può creare lo stack e non è necessario concedere al responsabile IAM autorizzazioni troppo ampie per un servizio a cui non dovrebbe avere accesso regolare.

Per utilizzare un ruolo di servizio per creare CloudFormation stack, i responsabili IAM devono disporre delle autorizzazioni a cui trasferire il ruolo di servizio e la politica di fiducia del ruolo di servizio deve consentire di assumere il ruolo. CloudFormation CloudFormation

Implementazione del privilegio minimo per i ruoli di servizio CloudFormation

In un ruolo di servizio, si definisce una politica di autorizzazioni che specifica esplicitamente quali azioni il servizio può eseguire. Queste potrebbero non essere le stesse azioni che un preside IAM può eseguire. Ti consigliamo di utilizzare i CloudFormation modelli a ritroso per creare un ruolo di servizio che aderisca al principio del privilegio minimo.

Definire correttamente l'ambito della policy basata sull'identità di un principale IAM in modo da assegnare solo ruoli di servizio specifici e definire la policy di fiducia di un ruolo di servizio in modo da consentire solo a soggetti specifici di assumere il ruolo aiuta a prevenire il possibile aumento dei privilegi attraverso i ruoli di servizio.

Configurazione dei ruoli di servizio

Nota

I ruoli di servizio sono configurati in IAM. Per creare un ruolo di servizio, è necessario disporre delle autorizzazioni necessarie. Un preside IAM con le autorizzazioni per creare un ruolo e allegare qualsiasi policy può aumentare le proprie autorizzazioni. AWS consiglia di creare un ruolo di servizio per ciascuno Servizio AWS per ogni caso d'uso. Dopo aver creato i ruoli di CloudFormation servizio per i tuoi casi d'uso, puoi consentire agli utenti di passare solo il ruolo di servizio approvato a CloudFormation. Per esempi di policy basate sull'identità che consentono agli utenti di creare ruoli di servizio, consulta le autorizzazioni dei ruoli di servizio nella documentazione IAM.

Per istruzioni su come creare ruoli di servizio, consulta Creazione di un ruolo per delegare le autorizzazioni a un. Servizio AWS Specifica CloudFormation (cloudformation.amazonaws.com) come servizio che può assumere il ruolo. Ciò impedisce a un responsabile IAM di assumere autonomamente il ruolo o di passarlo ad altri servizi. Quando si configura un ruolo di servizio, sono necessari Resource gli elementiAction, e. Effect Facoltativamente, puoi anche definire un Condition elemento.

Per ulteriori informazioni su questi elementi, consulta il riferimento agli elementi della policy IAM JSON. Per un elenco completo di azioni, risorse e chiavi di condizione, consulta Azioni, risorse e chiavi di condizione per la gestione delle identità e degli accessi.

Concessione a un IAM delle autorizzazioni principali per l'utilizzo di un CloudFormation ruolo di servizio

Per fornire risorse CloudFormation utilizzando il ruolo di CloudFormation servizio, il responsabile IAM deve disporre delle autorizzazioni per passare il ruolo di servizio. Puoi limitare le autorizzazioni del principale IAM a passare solo determinati ruoli specificando l'ARN del ruolo nelle autorizzazioni del principale. Per ulteriori informazioni, consulta Concessione a un utente delle autorizzazioni per passare un ruolo a un utente nella documentazione IAM. Servizio AWS

La seguente dichiarazione politica basata sull'identità IAM consente al principale di assegnare i ruoli, inclusi i ruoli di servizio, che si trovano nel percorso. cfnroles Il principale non può assegnare ruoli che si trovano in un percorso diverso.

{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::<account ID>:role/cfnroles/*" }

Un altro approccio per limitare i principali a determinati ruoli consiste nell'utilizzare un prefisso per i nomi dei ruoli di CloudFormation servizio. La seguente dichiarazione politica consente ai presidi IAM di passare solo i ruoli con un prefisso. CFN-

{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::<account ID>:role/CFN-*" }

Oltre alle precedenti dichiarazioni politiche, puoi utilizzare la chiave cloudformation:RoleARN condition per fornire ulteriori controlli granulari nella politica basata sull'identità, per un accesso con privilegi minimi. La seguente dichiarazione politica consente al responsabile IAM di creare, aggiornare ed eliminare gli stack solo se ricoprono un ruolo di servizio specifico. CloudFormation Come variante, è possibile definire più ARNs di un ruolo di CloudFormation servizio nella chiave di condizione.

{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::<account ID>:role/CFN-*", "Condition": { "StringEquals": { "cloudformation:RoleArn": [ "<ARN of the specific CloudFormation service role>" ] } } }

Inoltre, puoi anche utilizzare la chiave di cloudformation:RoleARN condizione per impedire a un principale IAM di passare un ruolo di CloudFormation servizio altamente privilegiato per le operazioni di stack. L'unica modifica richiesta è nell'operatore condizionale, da a. StringEquals StringNotEquals

{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::<account ID>:role/CFN-*", "Condition": { "StringNotEquals": { "cloudformation:RoleArn": [ "<ARN of a privilege CloudFormation service role>" ] } } }

Configurazione di una politica di fiducia per il ruolo di servizio CloudFormation

Una policy di trust per i ruoli è una politica necessaria basata sulle risorse associata a un ruolo IAM. Una policy di fiducia definisce quali dirigenti IAM possono assumere il ruolo. In una politica di fiducia, puoi specificare utenti, ruoli, account o servizi come responsabili. Per impedire ai responsabili IAM di trasferire i ruoli di servizio CloudFormation ad altri servizi, puoi specificare CloudFormation come principale la politica di fiducia del ruolo.

La seguente politica di fiducia consente solo al CloudFormation servizio di assumere il ruolo di servizio.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } }

Associazione di un ruolo di servizio a uno stack

Dopo aver creato un ruolo di servizio, è possibile associarlo a uno stack al momento della creazione dello stack. Per ulteriori informazioni, consulta Configurare le opzioni dello stack. Prima di specificare un ruolo di servizio, assicurati che i responsabili IAM dispongano delle autorizzazioni per passarlo. Per ulteriori informazioni, consulta Concessione a un IAM delle autorizzazioni principali per l'utilizzo di un CloudFormation ruolo di servizio.