View a markdown version of this page

Cross-service confusa prevenzione sostitutiva - 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 confusa prevenzione sostitutiva

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 intersettoriale può portare al confuso problema del vicesceriffo. Cross-service l'impersonificazione può verificarsi 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 mette a disposizione strumenti che consentono di proteggere i dati relativi a tutti i servizi con responsabili del servizio a cui è stato concesso l'accesso alle risorse dell'account.

Ti consigliamo di utilizzare le chiavi aws: SourceArn e aws: SourceAccount global condition context nelle politiche 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. Utilizza aws:SourceAccount se desideri che qualsiasi 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 CodeDeploy gruppo di distribuzione ARN con cui CodeDeploy è consentito assumere il ruolo IAM.

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

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

Ad esempio, puoi utilizzare la seguente policy di fiducia con una distribuzione EC2/On-Premises Amazon ECS 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/greendistribuzione Amazon ECS creata tramite CloudFormation, puoi 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/*" } } } ] }