Prevenzione del problema "confused deputy" tra servizi - AWS Transfer Family

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

Con "confused deputy" si intende un problema di sicurezza in cui un'entità che non dispone dell'autorizzazione per eseguire una certa operazione può costringere un'entità con più privilegi a eseguire tale operazione. Nel AWS, l'impersonificazione tra servizi può portare al confuso problema del sostituto. La rappresentazione tra servizi può verificarsi quando un servizio (il servizio chiamante) effettua una chiamata a un altro servizio (il servizio chiamato). Il servizio di chiamata può essere manipolato in modo da utilizzare le sue autorizzazioni per agire sulle risorse di un altro cliente in un modo a cui altrimenti non dovrebbe avere l'autorizzazione di 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. Per una descrizione dettagliata di questo problema, consulta il confuso problema secondario nella Guida per l'utente di IAM.

Ti consigliamo di utilizzare aws:SourceArnle chiavi di contesto della condizione aws:SourceAccountglobale nelle politiche delle risorse per limitare le autorizzazioni di cui AWS Transfer Family dispone per la risorsa. Se si utilizzano entrambe le chiavi di contesto delle condizioni globali, il valore aws:SourceAccount e l'account nel valore aws:SourceArn devono utilizzare lo stesso ID account nella stessa istruzione di policy.

Il modo più efficace per proteggersi dal problema "confused deputy" è utilizzare il nome della risorsa Amazon (ARN) esatto della risorsa che vuoi autorizzare. Se state specificando più risorse, utilizzate la chiave di condizione di contesto aws:SourceArn globale con caratteri jolly (*) per le parti sconosciute dell'ARN. Ad esempio, arn:aws:transfer::region::account-id:server/*.

AWS Transfer Family utilizza i seguenti tipi di ruoli:

  • Ruolo utente: consente agli utenti gestiti dal servizio di accedere alle risorse Transfer Family necessarie. AWS Transfer Family assume questo ruolo nel contesto dell'ARN di un utente Transfer Family.

  • Ruolo di accesso: fornisce l'accesso solo ai file Amazon S3 che vengono trasferiti. Per i trasferimenti AS2 in entrata, il ruolo di accesso utilizza l'Amazon Resource Name (ARN) per l'accordo. Per i trasferimenti AS2 in uscita, il ruolo di accesso utilizza l'ARN per il connettore.

  • Ruolo di chiamata: da utilizzare con Amazon API Gateway come provider di identità personalizzato del server. Transfer Family assume questo ruolo nel contesto di un ARN del server Transfer Family.

  • Ruolo di registrazione: utilizzato per registrare le voci in Amazon CloudWatch. Transfer Family utilizza questo ruolo per registrare i dettagli relativi al successo e all'errore insieme alle informazioni sui trasferimenti di file. Transfer Family assume questo ruolo nel contesto di un ARN del server Transfer Family. Per i trasferimenti AS2 in uscita, il ruolo di registrazione utilizza il connettore ARN.

  • Ruolo di esecuzione: consente a un utente Transfer Family di chiamare e avviare flussi di lavoro. Transfer Family assume questo ruolo nel contesto di un flusso di lavoro Transfer Family ARN.

Per ulteriori informazioni, consulta Policy e autorizzazioni in IAM nella Guida per l'utente di IAM .

Nota

Negli esempi seguenti, sostituire ogni segnaposto dell'input utente con le proprie informazioni.

Nota

Nei nostri esempi, utilizziamo entrambi ArnLike e. ArnEquals Sono identici dal punto di vista funzionale e pertanto è possibile utilizzarli entrambi quando si creano le proprie politiche. La documentazione di Transfer Family utilizza ArnLike quando la condizione contiene un carattere jolly e ArnEquals indica una condizione di corrispondenza esatta.

AWS Transfer Family, ruolo utente, prevenzione confusa tra diversi servizi

La seguente politica di esempio consente a qualsiasi utente di qualsiasi server dell'account di assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/*" } } } ] }

La seguente politica di esempio consente a qualsiasi utente di un server specifico di assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } } } ] }

La seguente politica di esempio consente a un utente specifico di un server specifico di assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/user-name" } } } ] }

AWS Transfer Family, ruolo del flusso di lavoro, prevenzione confusa tra diversi servizi

La seguente politica di esempio consente a qualsiasi flusso di lavoro dell'account di assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:workflow/*" } } } ] }

La seguente politica di esempio consente a un flusso di lavoro specifico di assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:workflow/workflow-id" } } } ] }

AWS Transfer Family, ruolo di registrazione e invocazione, prevenzione confusa tra diversi servizi

Nota

I seguenti esempi possono essere utilizzati sia nei ruoli di registrazione che di invocazione.

In questi esempi, puoi rimuovere i dettagli ARN per un flusso di lavoro se al server non è collegato alcun flusso di lavoro.

Il seguente esempio di politica di registrazione/invocazione consente a qualsiasi server (e flusso di lavoro) dell'account di assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllServersWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": [ "arn:aws:transfer:region:account-id:server/*", "arn:aws:transfer:region:account-id:workflow/*" ] } } } ] }

Il seguente esempio di politica di registrazione/invocazione consente a un server (e a un flusso di lavoro) specifici di assumere il ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificServerWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:transfer:region:account-id:server/server-id", "arn:aws:transfer:region:account-id:workflow/workflow-id" ] } } } ] }