Prevenzione del problema «confused deputy» tra servizi inAWS OpsWorks CM - AWS OpsWorks

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:SourceArndeve essere l'ARN di unOpsWorksServer CM Chef o Puppet.

Il modo più efficace per proteggersi dal problema «confused deputy» è quello di usareaws:SourceArnchiave 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:SourceArnchiave 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:SourceArneaws:SourceAccountchiavi 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:SourceArneaws:SourceAccountchiavi 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:SourceArneaws:SourceAccountChiavi di condizione
  1. Apertura della console IAM https://console.aws.amazon.com/iam/

  2. Nel riquadro di navigazione a sinistra seleziona Ruoli.

  3. NellaCercabox, cerca il ruolo a cui usi per accedereAWS OpsWorks CM. LaAWSil ruolo gestito èaws-opsworks-cm-service-role.

  4. SulRiepilogopagina per il ruolo, scegliere ilRelazioni di trustscheda.

  5. Nella scheda Trust relationships (Relazioni di trust) scegliere Edit trust relationship (Modifica relazione di trust).

  6. NellaDocumento di policy, aggiungere almeno uno deiaws:SourceArnoaws:SourceAccountchiavi di condizione per la politica. Utilizzaaws:SourceArnper 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:SourceAccountper 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" } } } ] }
  7. 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:SourceArneaws:SourceAccount.

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:SourceArnma 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" ] } } } ] }