Esempio SCPs di etichettatura delle risorse - AWS Organizations

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

Esempio SCPs di etichettatura delle risorse

Richiedere un tag sulle risorse create specificate

Quanto segue SCP impedisce IAM agli utenti e ai ruoli degli account interessati di creare determinati tipi di risorse se la richiesta non include i tag specificati.

Importante

Ricorda di testare le policy basate su rifiuto con i servizi che utilizzi nel tuo ambiente. L'esempio seguente è un semplice blocco di creazione di segreti senza tag o di esecuzione di istanze EC2 Amazon senza tag e non include alcuna eccezione.

La seguente politica di esempio non è compatibile con AWS CloudFormation quella scritta, perché quel servizio crea un segreto e poi lo contrassegna in due passaggi separati. Questa policy di esempio AWS CloudFormation impedisce efficacemente la creazione di un segreto come parte di uno stack, poiché un'azione di questo tipo comporterebbe, anche se brevemente, un segreto che non è etichettato come richiesto.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCreateSecretWithNoProjectTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyRunInstanceWithNoProjectTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyCreateSecretWithNoCostCenterTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } }, { "Sid": "DenyRunInstanceWithNoCostCenterTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } } ] }

Per un elenco di tutti i servizi e delle azioni che supportano in entrambi AWS Organizations SCPs e nelle politiche di IAM autorizzazione, consulta Actions, Resources and Condition Keys AWS servizi nella Guida per l'IAMutente.

Impedire la modifica dei tag se non da parte dei principali autorizzati

Di seguito SCP viene illustrato come una policy possa consentire solo ai responsabili autorizzati di modificare i tag allegati alle risorse. Questa è una parte importante dell'utilizzo del controllo degli accessi basato sugli attributi (ABAC) come parte della strategia di sicurezza del cloud AWS . La policy consente a un chiamante di modificare i tag solo su quelle risorse in cui il tag di autorizzazione (in questo esempio access-project) corrisponde esattamente allo stesso tag di autorizzazione associato all'utente o al ruolo da cui proviene la richiesta. Inoltre, la policy impedisce all'utente autorizzato di modificare il valore del tag utilizzato per l'autorizzazione. Il principale chiamante deve avere il tag di autorizzazione per apportare qualsiasi modifica.

Questa policy impedisce solo agli utenti non autorizzati di modificare i tag. Un utente autorizzato che non è bloccato da questa politica deve comunque disporre di una IAM politica separata che conceda esplicitamente l'Allowautorizzazione per i tag pertinenti. APIs Ad esempio, se l'utente dispone di una policy di amministratore con Allow */* (consentire tutti i servizi e tutte le operazioni), la combinazione determina l'autorizzazione all'utente amministratore di modificare solo i tag che hanno un valore del tag di autorizzazione corrispondente al valore del tag di autorizzazione associato al principale dell'utente. Questo perché il Deny esplicito in questa policy sovrascrive il Allow esplicito nella policy di amministratore.

Importante

Questa non è una soluzione politica completa e non deve essere utilizzata come mostrato qui. Questo esempio serve solo a illustrare una parte di una ABAC strategia e deve essere personalizzato e testato per gli ambienti di produzione.

Per la policy completa con un'analisi dettagliata del suo funzionamento, consulta Protezione dei tag delle risorse utilizzati per l'autorizzazione utilizzando una policy di controllo dei servizi in AWS Organizations

Ricorda di testare le policy basate su rifiuto con i servizi che utilizzi nel tuo ambiente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyModifyTagsIfResAuthzTagAndPrinTagDontMatch", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "ec2:ResourceTag/access-project": "${aws:PrincipalTag/access-project}", "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "Null": { "ec2:ResourceTag/access-project": false } } }, { "Sid": "DenyModifyResAuthzTagIfPrinTagDontMatch", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "aws:RequestTag/access-project": "${aws:PrincipalTag/access-project}", "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "ForAnyValue:StringEquals": { "aws:TagKeys": [ "access-project" ] } } }, { "Sid": "DenyModifyTagsIfPrinTagNotExists", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "Null": { "aws:PrincipalTag/access-project": true } } } ] }