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à.
Prevenzione del problema «confused deputy» tra servizi inAWS OpsWorks CM
Il problema confused deputy è un problema di sicurezza in cui un'entità che non dispone dell'autorizzazione per eseguire un'azione può costringere un'entità maggiormente privilegiata a eseguire l'azione. In AWS, la rappresentazione cross-service può comportare il problema confused deputy. La rappresentazione tra servizi può verificarsi quando un servizio (il servizio chiamante) effettua una chiamata a un altro servizio (il servizio chiamato). 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 ciò, AWS fornisce strumenti per poterti a proteggere i tuoi dati per tutti i servizi con entità di servizio a cui è stato concesso l'accesso alle risorse del tuo account.
Si consiglia di utilizzare le chiavi di contesto delle condizioni globali aws:SourceArn
e aws:SourceAccount
nelle policy delle risorse per limitare le autorizzazioni con cui AWS OpsWorks CM fornisce un altro servizio alla risorsa. Se il valore aws:SourceArn
non contiene l'ID account, ad esempio un ARN di un bucket Amazon S3, è necessario utilizzare entrambe le chiavi di contesto delle condizioni globali per limitare le autorizzazioni. Se si utilizzano entrambe le chiavi di contesto delle condizioni globali e il valore aws:SourceArn
contiene l'ID account, il valore aws:SourceAccount
e l’account nel valore aws:SourceArn
deve utilizzare lo stesso ID account nella stessa dichiarazione di policy. Utilizzare aws:SourceArn
se si desidera consentire l'associazione di una sola risorsa all'accesso tra servizi. Utilizzare aws:SourceAccount
se si desidera consentire l'associazione di qualsiasi risorsa in tale account all'uso tra servizi.
Il valore diaws:SourceArn
deve essere l'ARN di unOpsWorksServer CM Chef o Puppet.
Il modo più efficace per proteggersi dal problema «confused deputy» è quello di usareaws:SourceArn
chiave del contesto della condizione globale con l'ARN completo delAWS OpsWorks CMserver. Se non conosci l'ARN completo o se stai specificando più ARN server, usa ilaws:SourceArn
chiave di condizione del contesto globale con caratteri jolly (*
) per le parti sconosciute dell'ARN. Ad esempio, arn:aws:
.servicename
:*:123456789012
:*
La seguente sezione mostra come è possibile utilizzare ilaws:SourceArn
eaws:SourceAccount
chiavi di contesto delle condizioni globali inAWS OpsWorks CMper evitare il problema «confused deputy».
Prevenire gli exploit confusi inAWS OpsWorks CM
Questa sezione descrive come aiutare a prevenire gli exploit di deputy confused inAWS OpsWorks CMe include esempi di criteri di autorizzazione che è possibile allegare al ruolo IAM che si sta utilizzando per accedereAWS OpsWorks CM. Come best practice per la sicurezza, consigliamo di aggiungereaws:SourceArn
eaws:SourceAccount
chiavi di condizione per le relazioni di fiducia che il tuo ruolo IAM ha con altri servizi. Le relazioni fiduciarie consentonoAWS OpsWorks CMassumere un ruolo per eseguire azioni in altri servizi necessari per creare o gestire il tuoAWS OpsWorks CMserver.
Per modificare le relazioni di attendibilità da aggiungereaws:SourceArn
eaws:SourceAccount
Chiavi di condizione
Apertura della console IAM https://console.aws.amazon.com/iam/
Nel riquadro di navigazione a sinistra seleziona Ruoli.
NellaCercabox, cerca il ruolo a cui usi per accedereAWS OpsWorks CM. LaAWSil ruolo gestito è
aws-opsworks-cm-service-role
.SulRiepilogopagina per il ruolo, scegliere ilRelazioni di trustscheda.
Nella scheda Trust relationships (Relazioni di trust) scegliere Edit trust relationship (Modifica relazione di trust).
NellaDocumento di policy, aggiungere almeno uno dei
aws:SourceArn
oaws:SourceAccount
chiavi di condizione per la politica. Utilizzaaws:SourceArn
per limitare il rapporto di fiducia tra servizi intermedi (come ad esempioAWS Certificate Managere Amazon EC2) eAWS OpsWorks CMa specificiAWS OpsWorks CMserver, che è più restrittivo. Inserisciaws:SourceAccount
per limitare il rapporto di fiducia tra servizi intermedi eAWS OpsWorks CMai server in un account specifico, il che è meno restrittivo. Di seguito è riportato un esempio. Tieni presente che se usi entrambe le chiavi di condizione, gli ID account devono essere uguali.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:opsworks-cm:us-east-2:123456789012:server/my-opsworks-server/EXAMPLEabcd-1234-efghEXAMPLE-ID" } } } ] }
-
Dopo aver aggiunto i tasti della condizione, scegliereRegole di attendibilità.
Di seguito sono riportati altri esempi di ruoli che limitano l'accesso aAWS OpsWorks CMserver tramiteaws:SourceArn
eaws:SourceAccount
.
Argomenti
Esempio: AccedendoAWS OpsWorks CMserver in una determinata regione
La seguente dichiarazione di relazione trust del ruolo accede a qualsiasiAWS OpsWorks CMserver nella regione Stati Uniti orientali (Ohio) (us-east-2
). Notare che la regione è specificata nel valore ARN diaws:SourceArn
ma il valore dell'ID del server è un carattere jolly (*).
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:opsworks-cm:us-east-2:123456789012:server/*" } } } ] }
Esempio: Aggiunta di più di un server ARN aaws:SourceArn
L'esempio seguente limita l'accesso a un array di dueAWS OpsWorks CMserver nell'account ID 123456789012.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:opsworks-cm:us-east-2:123456789012:server/my-chef-server/
unique_ID
", "arn:aws:opsworks-cm:us-east-2:123456789012:server/my-puppet-server/unique_ID
" ] } } } ] }