AWS: refuser l'accès aux ressources Amazon S3 en dehors de votre compte, sauf AWS Data Exchange
Cet exemple montre comment vous pouvez créer une politique basées sur l'identité qui refuse l'accès à toutes les ressources dans AWS qui n'appartiennent pas à votre compte, à l'exception des ressources dont AWS Data Exchange a besoin pour un fonctionnement normal. Pour utiliser cette politique, remplacez le texte de l'espace réservé en italique
dans l'exemple de politique par vos propres informations de ressource. Ensuite, suivez les instructions fournies dans create a policy (créer une politique) ou edit a policy (modifier une politique).
Vous pouvez créer une politique similaire pour restreindre l'accès aux ressources d'une organisation ou d'une unité d'organisation, tout en tenant compte des ressources détenues par AWS Data Exchange à l'aide des clés de condition aws:ResourceOrgPaths
et aws:ResourceOrgID
.
Si vous utilisez AWS Data Exchange dans votre environnement, le service crée et interagit avec des ressources telles que des compartiments Amazon S3 détenus par le compte de service. Par exemple, AWS Data Exchange envoie des demandes aux compartiments S3 d'Amazon appartenant au service AWS Data Exchange au nom du principal IAM (utilisateur ou rôle) invoquant les API AWS Data Exchange. Dans ce cas, l'utilisation de aws:ResourceAccount
, aws:ResourceOrgPaths
ou aws:ResourceOrgID
dans une police, sans tenir compte des ressources détenues par AWS Data Exchange, refuse l'accès aux compartiments détenus par le compte de service.
-
Instruction
DenyAllAwsResourcesOutsideAccountExceptS3
utilise le l'élémentNotAction
avec l'effet Deny (Refuser) qui refuse explicitement l'accès à toutes les actions non répertoriées dans l'instruction et qui n'appartiennent pas non plus au compte répertorié. L'élémentNotAction
indique les exceptions à cette instruction. Ces actions font exception à cette instruction, car si les actions sont effectuées sur des ressources créées par AWS Data Exchange, la politique les refuse. -
L'instruction
DenyAllS3ResoucesOutsideAccountExceptDataExchange
utilise une combinaison des clés de conditionResourceAccount
etCalledVia
pour refuser l'accès aux trois actions Amazon S3 exclues dans la déclaration précédente. L'instruction refuse les actions si les ressources n'appartiennent pas au compte répertorié et si le service appelant n'est pas AWS Data Exchange. L'instruction ne refuse pas les actions si la ressource appartient au compte répertorié ou si le principal de service répertorié,dataexchange.amazonaws.com
, effectue les opérations.
Important
Cette politique ne permet aucune action. Elle utilise l'effet Deny
, qui refuse explicitement l'accès à toutes les ressources répertoriées dans l'instruction n'appartenant pas au compte répertorié. Utilisez cette politique en combinaison avec d'autres politiques qui autorisent l'accès à des ressources spécifiques.
L'exemple suivant montre comment vous pouvez configurer la politique pour autoriser l'accès aux compartiments Amazon S3 requis.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllAwsReourcesOutsideAccountExceptAmazonS3", "Effect": "Deny", "NotAction": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "
111122223333
" ] } } }, { "Sid": "DenyAllS3ResourcesOutsideAccountExceptDataExchange", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333
" ] }, "ForAllValues:StringNotEquals": { "aws:CalledVia": [ "dataexchange.amazonaws.com" ] } } } ] }