Come posso utilizzare le chiavi di condizione PrincipalTag, ResourceTag, RequestTag e TagKeys per creare una policy IAM per la restrizione basata su tag?
Desidero creare una policy di AWS Identity and Access Management (IAM) per la restrizione basata su tag. Desidero utilizzare le chiavi di condizione PrincipalTag, ResourceTag, RequestTag e TagKeys.
Risoluzione
Le seguenti policy IAM di esempio utilizzano le chiavi di condizione per creare restrizioni basate su tag.
Nota: per determinare le operazioni API che puoi completare, si consiglia di consultare la documentazione API per il servizio che stai utilizzando.
Chiave di condizione PrincipalTag
Utilizza la chiave di condizione aws:PrincipalTag/tag-key per abbinare il tag collegato al principale che effettua la richiesta con il tag nella policy IAM.
L'esempio seguente di policy IAM fornisce restrizioni per un bucket Amazon Simple Storage Service (Amazon S3). L'azione Amazon S3 PutObject ha negato l'accesso al bucket a tutti gli utenti tranne quelli con il titolo Product-Manager:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllButProductManagers", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::productionbucket/*" ], "Condition": { "StringNotEquals": { "aws:PrincipalTag/job-title": "Product-Manager" } } } ] }
Chiave di condizione ResourceTag
Utilizza la chiave di condizione aws:ResourceTag/tag-key per confrontare la coppia chiave-valore di tag specificata nella policy IAM con la coppia chiave-valore collegata alla risorsa AWS. Per ulteriori informazioni, consulta Controlling access to AWS resources.
Puoi utilizzare questa chiave di condizione con la versione globale aws:ResourceTag e i servizi AWS, come ec2:ResourceTag. Per ulteriori informazioni, consulta Actions, resources, and condition keys for AWS services.
L'esempio seguente di policy IAM consente agli utenti di avviare, interrompere e terminare le istanze che si trovano nell'ambiente di test:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyForTestEnvironment", "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ec2:ResourceTag/Env": "test" } } } ] }
Chiave di condizione RequestTag
Utilizza la chiave di condizione aws:RequestTag/tag-key per confrontare la coppia chiave-valore passata nella richiesta dell'utente con la coppia di tag specificata nella policy IAM. È possibile utilizzare questa chiave di condizione per le operazioni che creano una risorsa o un tag di risorsa e che controllano il valore del tag.
La seguente policy di esempio obbliga gli utenti a creare un tag Env specifico quando realizzano un volume Amazon Elastic Block Store (Amazon EBS). Env deve avere i valori Dev, Prod o QA:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateVolumeWithEnvTag", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "StringEquals": { "aws:RequestTag/Env": [ "Dev", "Prod", "QA" ] } } } ] }
Chiave di condizione TagKeys
Utilizza la chiave di condizione aws:TagKeys per confrontare le chiavi dei tag in una richiesta con le chiavi specificate nella policy IAM. Questa chiave di condizione convalida le chiavi dei tag collegate a una risorsa.
Poiché è possibile definire più coppie chiave-valore di tag in una richiesta, quest'ultima può avere più valori. Per confrontare questi valori, utilizza gli operatori di set ForAllValues o ForAnyValue.
La seguente policy di esempio limita i tag creati su una risorsa AWS. I tag Env e CostCenter sono le uniche chiavi dei tag che gli utenti possono creare con un nuovo volume Amazon EBS. L'utilizzo dell'operatore di set ForAllValues con aws:TagKeys consente agli utenti di collegare solo i tag richiesti alla risorsa AWS. Questa policy non obbliga gli utenti a fornire queste chiavi di tag nella richiesta di creazione della risorsa. Invece, la policy non consente agli utenti di creare tag con altre coppie chiave-valore:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "Env", "CostCenter" ] } } } ] }
Informazioni correlate
Tutorial IAM: definizione delle autorizzazioni per accedere alle risorse AWS in base ai tag
Contenuto pertinente
- AWS UFFICIALEAggiornata un mese fa
- AWS UFFICIALEAggiornata un mese fa
- AWS UFFICIALEAggiornata un anno fa