Cross-service prevenzione sostitutiva confusa - AWS CodeDeploy

View a markdown version of this page

Cross-service prevenzione sostitutiva confusa - AWS CodeDeploy

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

Cross-service prevenzione sostitutiva confusa

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. Nel AWS, l'impersonificazione tra servizi può portare al confuso problema del vice. Cross-service l'imitazione può avvenire quando un servizio (il servizio chiamante) chiama 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 che ciò accada, AWS fornisce strumenti che consentono di proteggere i dati per tutti i servizi ai quali è stato concesso l'accesso alle risorse del proprio account.

Ti consigliamo di utilizzare le chiavi di contesto della condizione SourceAccount globale https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn aws: SourceArn e aws: nelle policy delle risorse per limitare le autorizzazioni che CodeDeploy forniscono un altro servizio alla risorsa. 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. Usa aws:SourceAccount se desideri che una risorsa in quell'account sia associata all'uso tra servizi.

Per EC2/On-Premises le distribuzioni AWS Lambda e Amazon ECS regolari, il valore di aws:SourceArn dovrebbe includere il gruppo di CodeDeploy distribuzione ARN con il quale CodeDeploy è consentito assumere il ruolo IAM.

Per le blue/green distribuzioni Amazon ECS create tramite CloudFormation, il valore di aws:SourceArn deve includere lo CloudFormation stack ARN con cui CodeDeploy è consentito assumere il ruolo IAM.

Il modo più efficace per proteggersi dal confuso problema sostitutivo è utilizzare la aws:SourceArn chiave con l'ARN completo della risorsa. Se non conosci l'ARN completo o se stai specificando più risorse, utilizza i caratteri jolly (*) per le parti sconosciute.

Ad esempio, potresti utilizzare la seguente policy di fiducia con una distribuzione Amazon ECS normale EC2/On-Premises, AWS Lambda o normale:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "codedeploy.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:codedeploy:us-east-1:111122223333:deploymentgroup:myApplication/*" } } } ] }

Per una blue/green distribuzione Amazon ECS creata tramite CloudFormation, potresti utilizzare:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "codedeploy.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudformation:us-east-1:111122223333:stack/MyCloudFormationStackName/*" } } } ] }