Prevenzione del problema "confused deputy" tra servizi
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, il problema “confused deputy” può essere dovuto a un’impersonificazione tra servizi. L’impersonificazione tra servizi può verificarsi quando un servizio (il servizio chiamante) invoca un altro servizio (il servizio chiamato) e sfrutta le autorizzazioni elevate del servizio chiamato per agire su risorse alle quali non è autorizzato ad accedere. Per impedire l’accesso non autorizzato dovuto al problema “confused deputy”, AWS fornisce strumenti che aiutano a proteggere i dati su tutti i servizi. Questi strumenti permettono di controllare le autorizzazioni concesse ai principali dei servizi, limitandone l’accesso alle sole risorse necessarie nell’account. Gestendo attentamente i privilegi di accesso dei principali dei servizi, puoi contribuire a mitigare il rischio che i servizi accedano in modo improprio a dati o risorse per i quali non dovrebbero avere le autorizzazioni.
Continua a leggere per indicazioni generali o consulta un esempio per una funzionalità specifica di SageMaker:
Limita le autorizzazioni con le chiavi di condizione globali
Ti consigliamo di utilizzare le chiavi di condizione globali aws:SourceArn e aws:SourceAccount nelle policy delle risorse per limitare le autorizzazioni sulla risorsa che Amazon SageMaker AI concede a un altro servizio. Se si utilizzano entrambe le chiavi di condizione 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 modo più efficace per proteggersi dal problema "confused deputy" è quello di usare la chiave di condizione globale aws:SourceArn con l'ARN completo della risorsa. Se non si conosce l'ARN completo della risorsa o si scelgono più risorse, è necessario utilizzare la chiave di condizione globale aws:SourceArn con caratteri jolly (*) per le parti sconosciute dell'ARN. Ad esempio, arn:aws:sagemaker:*:.123456789012:*
L’esempio seguente mostra come utilizzare le chiavi di condizione globali aws:SourceArn e aws:SourceAccount in SageMake AI per prevenire il problema “confused deputy”.
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, # Specify an action and resource policy for another service "Action": "service:ActionName", "Resource": [ "arn:aws:service:::ResourceName/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:sagemaker:region:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }
SageMaker Edge Manager
L'esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema del “confused deputy” tra servizi per SageMaker Edge Manager creato dal numero di account 123456789012 nella Regione us-west-2.
Puoi sostituire aws:SourceArn contenuto in questo modello con l'ARN completo di un processo di creazione del pacchetto specifico per limitare ulteriormente le autorizzazioni.
Immagini SageMaker
L'esempio seguente mostra il modo in cui puoi utilizzare la chiave di condizione globale aws:SourceArn per prevenire problemi di "confused deputy" tra servizi per immagini SageMaker. Usa questo modello con Image o ImageVersion. Questo esempio utilizza un record ImageVersion ARN con il numero di account 123456789012. Poiché il numero di account fa parte del valore aws:SourceArn, non è necessario specificare un valore aws:SourceAccount.
Non sostituire il valore aws:SourceArn contenuto in questo modello con l'ARN completo di un'immagine o di una versione dell'immagine specifica. L'ARN deve corrispondere al formato fornito sopra e specificare image o image-version. Il segnaposto partition deve indicare una partizione commerciale AWS (aws) o una partizione AWS in Cina (aws-cn), a seconda di dove è in esecuzione l'immagine o la versione dell'immagine. Analogamente, il segnaposto region nell'ARN può essere una qualsiasi Regione valida in cui sono disponibili immagini SageMaker.
Inferenza di SageMaker AI
L’esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema “confused deputy” tra servizi per l’inferenza in tempo reale, serverless e asincrona di SageMaker AI. Poiché il numero di account fa parte del valore aws:SourceArn, non è necessario specificare un valore aws:SourceAccount.
Non sostituire il valore aws:SourceArn contenuto in questo modello con l'ARN completo di un modello o endpoint specifici. L'ARN deve corrispondere al formato fornito sopra. L'asterisco nel modello ARN non rappresenta un carattere jolly e non deve essere modificato.
Processi di trasformazione di batch SageMaker AI
L’esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema “confused deputy” tra servizi per i processi di trasformazione di batch di SageMaker AI creati dal numero di account 123456789012 nella Regione us-west-2. Poiché il numero di account fa parte di ARN, non è necessario specificare un valore aws:SourceAccount.
Puoi sostituire aws:SourceArn contenuto in questo modello con l'ARN completo di un processo di trasformazione di batch specifico per limitare ulteriormente le autorizzazioni.
SageMaker AI Marketplace
L’esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema “confused deputy” tra servizi per le risorse SageMaker AI Marketplace create dal numero di account 123456789012 nella Regione us-west-2. Poiché il numero di account fa parte di ARN, non è necessario specificare un valore aws:SourceAccount.
Non sostituire il valore aws:SourceArn contenuto in questo modello con l'ARN completo di un algoritmo o pacchetti di modelli specifici. L'ARN deve corrispondere al formato fornito sopra. L’asterisco nel modello ARN rappresenta un carattere jolly e copre tutti i job di addestramento, i modelli e i processi di trasformazione di batch prodotti dalle fasi di convalida, nonché i pacchetti di algoritmi e modelli pubblicati su SageMaker AI Marketplace.
SageMaker Neo
L'esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema del “confused deputy” tra servizi per i processi di compilazione SageMaker Neo creati dal numero di account 123456789012 nella Regione us-west-2. Poiché il numero di account fa parte di ARN, non è necessario specificare un valore aws:SourceAccount.
Puoi sostituire aws:SourceArn contenuto in questo modello con l'ARN completo di un processo di compilazione specifico per limitare ulteriormente le autorizzazioni.
Pipeline SageMaker
L'esempio seguente mostra il modo in cui puoi utilizzare la chiave di condizione globale aws:SourceArn per prevenire problemi di "confused deputy" tra servizi per Pipeline SageMaker attraverso l’uso di record di esecuzione della pipeline di una o più pipeline.. Poiché il numero di account fa parte di ARN, non è necessario specificare un valore aws:SourceAccount.
Non sostituire aws:SourceArn contenuto in questo modello con l'ARN completo di una esecuzione della pipeline specifica. L'ARN deve corrispondere al formato fornito sopra. Il segnaposto partition deve indicare una partizione commerciale AWS (aws) o una partizione AWS in Cina (aws-cn), a seconda di dove è in esecuzione la pipeline. Analogamente, il segnaposto region nell'ARN può essere una qualsiasi Regione valida in cui sono disponibili Pipeline SageMaker.
L'asterisco nel modello ARN sta per carattere jolly e copre tutte le esecuzioni di pipeline di una pipeline denominata mypipeline. Se desideri consentire le autorizzazioni AssumeRole per tutte le pipeline dell'account 123456789012 anziché per una pipeline specifica, allora aws:SourceArn dovrebbe essere arn:aws:sagemaker:*:123456789012:pipeline/*.
Processi di elaborazione SageMaker
L’esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema del “confused deputy” tra servizi per i processi di elaborazione SageMaker creati dal numero di account 123456789012 nella Regione us-west-2. Poiché il numero di account fa parte di ARN, non è necessario specificare un valore aws:SourceAccount.
Puoi sostituire aws:SourceArn contenuto in questo modello con l'ARN completo di un processo di elaborazione specifico per limitare ulteriormente le autorizzazioni.
SageMaker Studio
L'esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema del “confused deputy” tra servizi per SageMaker Studio creato dal numero di account 123456789012 nella Regione us-west-2. Poiché il numero di account fa parte del valore aws:SourceArn, non è necessario specificare un valore aws:SourceAccount.
Non sostituire aws:SourceArn contenuto in questo modello con l'ARN completo di un'applicazione Studio, profilo utente o dominio specifici. L'ARN deve corrispondere al formato fornito nell'esempio precedente. L'asterisco nel modello ARN non rappresenta un carattere jolly e non deve essere modificato.
Processi di addestramento SageMaker
L'esempio seguente mostra come utilizzare la chiave di condizione globale aws:SourceArn per evitare il problema del “confused deputy” tra servizi per i processi di addestramento SageMaker creati dal numero di account 123456789012 nella Regione us-west-2. Poiché il numero di account fa parte di ARN, non è necessario specificare un valore aws:SourceAccount.
Puoi sostituire aws:SourceArn contenuto in questo modello con l'ARN completo di un processo di addestramento specifico per limitare ulteriormente le autorizzazioni.
Argomento successivo
Per ulteriori informazioni sulla gestione dei ruoli di esecuzione, consulta Ruoli di SageMaker AI.