Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
NotResource
est un élément de politique avancé qui correspond explicitement à chaque ressource, à l'exception de celles spécifiées. L'utilisation de NotResource
peut entraîner une politique plus courte en répertoriant uniquement quelques ressources qui ne devraient pas correspondre, plutôt que d'inclure une longue liste de ressources qui correspondront. Ceci est particulièrement utile pour les politiques applicables au sein d'un même service AWS.
Prenons l'exemple d'un groupe nommé HRPayroll
. Les membres de HRPayroll
ne doivent pas être autorisés à accéder aux ressources Amazon S3 sauf au dossier Payroll
dans le compartiment HRBucket
. La politique suivante refuse de manière explicite l'accès à toutes les ressources Amazon S3 autres que celles répertoriées. Notez, toutefois, que cette politique n'accorde à l'utilisateur aucun accès aux ressources.
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "s3:*",
"NotResource": [
"arn:aws:s3:::HRBucket/Payroll
",
"arn:aws:s3:::HRBucket/Payroll
/*"
]
}
}
En règle générale, pour refuser de manière explicite l'accès à une ressource vous rédigez une politique qui utilise "Effect":"Deny"
et inclut un élément Resource
qui répertorie individuellement chaque dossier. Toutefois, dans ce cas, chaque fois que vous ajoutez un dossier à HRBucket
, ou une ressource à Amazon S3 à laquelle personne ne doit accéder, vous devez ajouter son nom à la liste dans Resource
. Si vous utilisez un élément NotResource
à la place, les utilisateurs verront leur accès aux nouveaux dossiers automatiquement refusé sauf si vous ajoutez les noms des dossiers à l'élément NotResource
.
Lorsque vous utilisez NotResource
, n'oubliez pas que les ressources spécifiées dans cet élément sont les seules ressources qui ne sont pas limitées. Toutes les ressources qui s'appliqueraient à l'action sont limitées. Dans l'exemple ci-dessus, la politique affecte uniquement les actions Amazon S3, et donc uniquement les ressources Amazon S3. Si l'action comprenait également des actions Amazon EC2, la politique ne refuserait pas l'accès aux ressources EC2. Pour savoir quelles actions d'un service permettent de spécifier l'ARN d'une ressource, consultez Actions, ressources et clés de condition pour les services AWS.
Utilisation de NotResource avec d'autres éléments
Vous ne devez jamais utiliser les éléments "Effect": "Allow"
, "Action": "*"
et "NotResource": "arn:aws:s3:::HRBucket"
ensemble. Cette instruction est très dangereuse, car elle autorise toutes les actions AWS sur toutes les ressources, à l'exception du compartiment S3 HRBucket
. Elle autoriserait même l'utilisateur à s'ajouter une politique qui lui permettrait d'accéder à HRBucket
. Ne le faites pas.
Soyez vigilant lorsque vous utilisez l'élément NotResource
et "Effect": "Allow"
dans la même instruction ou une instruction différente dans une politique. NotResource
autorise tous les services et ressources qui ne sont pas répertoriés de manière explicite et peut accorder aux utilisateurs plus d'autorisations que vous n'auriez souhaité. L'utilisation de l'élément NotResource
et "Effect": "Deny"
dans la même instruction refuse les services et les ressources qui ne sont pas répertoriés de manière explicite.