Utilizzo dei tag per controllare l'accesso alle CodePipeline risorse - AWS CodePipeline

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

Utilizzo dei tag per controllare l'accesso alle CodePipeline risorse

Le condizioni nelle dichiarazioni delle policy IAM fanno parte della sintassi utilizzata per specificare le autorizzazioni per le risorse richieste dalle azioni. CodePipeline L'utilizzo di tag nelle condizioni è un modo per controllare l'accesso alle risorse e alle richieste. Per informazioni sull'etichettatura delle CodePipeline risorse, consulta. Assegnazione di tag alle risorse In questo argomento viene illustrato il controllo degli accessi basato su tag.

Durante la progettazione di policy IAM, potrebbe essere necessario impostare autorizzazioni granulari concedendo l'accesso a risorse specifiche. Poiché il numero di risorse che puoi gestire cresce, questa operazione diventa più difficile. Il tagging delle risorse e l'utilizzo di tag in condizioni di dichiarazione di policy possono semplificare questa attività. Puoi concedere l'accesso in blocco a qualsiasi risorsa con un determinato tag. Quindi applicare ripetutamente questo tag a risorse pertinenti, durante la creazione o in seguito.

I tag possono essere collegati alla risorsa o trasferiti nella richiesta verso servizi che supportano il tagging. In CodePipeline, le risorse possono avere tag e alcune azioni possono includere tag. Quando si crea una policy IAM, è possibile utilizzare le chiavi di condizione di tag per controllare:

  • Quali utenti possono eseguire operazioni su una risorsa della pipeline, in base ai tag di cui la risorsa dispone già.

  • Quali tag possono essere passati in una richiesta di operazione.

  • Se delle chiavi di tag specifiche possono essere utilizzate in una richiesta.

Gli operatori di condizioni stringa consentono di creare elementi Condition che limitano l'accesso in base al confronto con una chiave con un valore di stringa. È possibile aggiungere IfExists alla fine di qualsiasi condizione il nome dell'operatore tranne la condizione Null. Questa aggiunta ha lo scopo di dichiarare che "se la chiave di policy è presente nel contesto della richiesta, la chiave deve essere elaborata come specificato nella policy". Se la chiave non è presente, l'elemento della condizione viene valutato come "true". Ad esempio, è possibile utilizzare StringEqualsIfExists per limitare per condizione chiavi che potrebbero non essere presenti su altri tipi di risorse.

Per la sintassi e la semantica complete delle chiavi di condizione dei tag, consulta Controllo dell'accesso tramite tag. Per ulteriori informazioni sulle chiavi di condizione, consulta le seguenti risorse. Gli esempi di CodePipeline policy in questa sezione si allineano alle seguenti informazioni sulle chiavi di condizione e le ampliano con esempi di sfumature, CodePipeline ad esempio l'annidamento delle risorse.

Gli esempi seguenti mostrano come specificare le condizioni dei tag nelle politiche per CodePipeline gli utenti.

Esempio 1: Limitare le operazioni in base ai tag nella richiesta

La politica degli utenti AWSCodePipeline_FullAccess gestiti offre agli utenti il permesso illimitato di eseguire qualsiasi CodePipeline azione su qualsiasi risorsa.

La seguente politica limita questo potere e nega agli utenti non autorizzati l'autorizzazione a creare pipeline in cui nella richiesta sono elencati tag specifici. A tale scopo, nega l'operazione CreatePipeline se nella richiesta è specificato un tag denominato Project con uno dei valori ProjectA o ProjectB. La chiave di condizione aws:RequestTag viene utilizzata per controllare quali tag possono essere passati in una richiesta IAM.

Nell'esempio seguente, l'intento della policy è negare agli utenti non autorizzati l'autorizzazione a creare una pipeline con i valori dei tag specificati. Tuttavia, la creazione di una pipeline richiede l'accesso a risorse oltre alla pipeline stessa (ad esempio, azioni e fasi della pipeline). Poiché il criterio 'Resource' specificato è'*', il criterio viene valutato rispetto a ogni risorsa che dispone di un ARN e viene creata durante la creazione della pipeline. Queste risorse aggiuntive non dispongono della chiave tag condition, quindi il StringEquals controllo ha esito negativo e all'utente non viene concessa la possibilità di creare alcuna pipeline. Per risolvere questo problema, utilizzare l'operatore di condizione StringEqualsIfExists. In questo modo, il test viene effettuato solo se la chiave di condizione esiste.

Potresti leggere quanto segue: «Se la risorsa da controllare ha una chiave di "RequestTag/Project" condizione del tag, consenti l'azione solo se il valore della chiave inizia conprojectA. Se la risorsa verificata non include quella chiave di condizione, non preoccuparti".

Inoltre, la politica impedisce a questi utenti non autorizzati di manomettere le risorse utilizzando la chiave di aws:TagKeys condizione per impedire che le azioni di modifica dei tag includano gli stessi valori dei tag. L'amministratore di un cliente deve collegare questa policy IAM agli utenti amministrativi non autorizzati, oltre alla policy per gli utenti gestiti.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codepipeline:CreatePipeline", "codepipeline:TagResource" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "aws:RequestTag/Project": ["ProjectA", "ProjectB"] } } }, { "Effect": "Deny", "Action": [ "codepipeline:UntagResource" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["Project"] } } } ] }
Esempio 2: Limita le azioni di etichettatura in base ai tag delle risorse

La politica degli utenti AWSCodePipeline_FullAccess gestiti offre agli utenti autorizzazioni illimitate per eseguire qualsiasi CodePipeline azione su qualsiasi risorsa.

La policy seguente limita questa capacità e nega agli utenti non autorizzati l'autorizzazione a eseguire operazioni su pipeline specifiche di progetto. A tale scopo, rifiuta alcune operazioni se la risorsa ha un tag denominato Project con uno dei valori ProjectA o ProjectB. La chiave di condizione aws:ResourceTag viene utilizzata per controllare l'accesso alle risorse in base ai tag su tali risorse. L'amministratore di un cliente deve collegare questa policy IAM a utenti IAM non autorizzati oltre alla policy gestita dall'utente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codepipeline:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": ["ProjectA", "ProjectB"] } } } ] }
Esempio 3: Consentire operazioni in base ai tag nella richiesta

La seguente politica concede agli utenti il permesso di creare pipeline di sviluppo in. CodePipeline

A questo scopo, consente le operazioni CreatePipelinee TagResource se la richiesta specifica un tag denominato Project con il valore ProjectA. In altre parole, l'unica chiave di tag che può essere specificata èProject, e il suo valore deve essere. ProjectA

La chiave aws:RequestTag condition viene utilizzata per controllare quali tag possono essere passati in una richiesta IAM. La condizione aws:TagKeys garantisce che la chiave tag rileva la distinzione tra maiuscole e minuscole. Questa policy è utile per gli utenti o i ruoli a cui non è associata la policy per gli utenti AWSCodePipeline_FullAccess gestiti. La policy gestita offre agli utenti autorizzazioni illimitate per eseguire qualsiasi CodePipeline azione su qualsiasi risorsa.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:CreatePipeline", "codepipeline:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/Project": "ProjectA" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["Project"] } } } ] }
Esempio 4: Limita le azioni di rimozione dei tag in base ai tag delle risorse

La politica degli utenti AWSCodePipeline_FullAccess gestiti offre agli utenti autorizzazioni illimitate per eseguire qualsiasi CodePipeline azione su qualsiasi risorsa.

La policy seguente limita questa capacità e nega agli utenti non autorizzati l'autorizzazione a eseguire operazioni su pipeline specifiche di progetto. A tale scopo, rifiuta alcune operazioni se la risorsa ha un tag denominato Project con uno dei valori ProjectA o ProjectB.

Inoltre, la politica impedisce a questi utenti non autorizzati di manomettere le risorse utilizzando la chiave di aws:TagKeys condizione per impedire che le azioni di modifica dei tag rimuovano completamente il tag. Project L'amministratore di un cliente deve collegare questa policy IAM a utenti o ruoli non autorizzati, oltre alla policy per gli utenti gestiti.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codepipeline:UntagResource" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["Project"] } } } ] }