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.
AWS Éléments de politique JSON : NotPrincipal
L'NotPrincipalélément est utilisé "Effect":"Deny" pour refuser l'accès à tous les principaux, à l'exception du principal spécifié dans l'NotPrincipalélément. Un principal peut être un utilisateur IAM, un utilisateur principal AWS STS fédéré, un rôle IAM, une session de rôle assumé Compte AWS, un AWS service ou un autre type principal. Pour plus d'informations sur les directeurs, consultezAWS Éléments de politique JSON : Principal.
L'élément NotPrincipal doit être utilisé avec "Effect":"Deny". Son utilisation avec "Effect":"Allow" n'est pas prise en charge.
Important
Nous ne recommandons pas l'utilisation de NotPrincipal pour les nouvelles politiques basées sur les ressources dans le cadre de votre stratégie de sécurité et d'autorisation. Lorsque vous utilisez l'élément NotPrincipal, il peut être difficile de résoudre les problèmes liés à plusieurs types de politique. Nous recommandons plutôt l'utilisation de la clé de contexte aws:PrincipalArn avec les opérateurs de condition ARN.
Points clés
-
L'
NotPrincipalélément est pris en charge dans les politiques basées sur les ressources pour certains AWS services, notamment les points de terminaison VPC. Les politiques basées sur les ressources sont des politiques que vous intégrez directement à une ressource. Vous ne pouvez pas utiliser l'élémentNotPrincipaldans une politique IAM basée sur l'identité ni dans une politique d'approbation du rôle IAM. -
N'utilisez pas de déclarations de politique basée sur les ressources qui incluent un élément de politique
NotPrincipalayant un effetDenysur les utilisateurs IAM ou les rôles auxquels est attachée une politique de limite des autorisations. L'élémentNotPrincipalayant un effetDenyrefusera toujours tout principal IAM auquel est attachée une politique de limite des autorisations, quelles que soient les valeurs spécifiées dans l'élémentNotPrincipal. Certains utilisateurs ou rôles IAM qui auraient autrement eu accès à la ressource n'y ont donc plus accès. Nous vous recommandons de modifier vos déclarations de politique basée sur les ressources afin d'utiliser l'opérateur de condition ArnNotEquals avec la clé de contexte aws:PrincipalArn dans le but de limiter l'accès plutôt que l'élémentNotPrincipal. Pour plus d'informations sur les limites des autorisations, veuillez consulter Limites d'autorisations pour les entités IAM. -
Lorsque vous l'utilisez
NotPrincipal, vous devez également spécifier l'ARN du compte du principal non refusé. Dans le cas contraire, la politique peut refuser l'accès à l'ensemble du compte contenant le principal. En fonction du service que vous incluez dans votre politique, AWS peut valider d'abord le compte, puis l'utilisateur. Si un utilisateur assumant un rôle (une personne utilisant un rôle) est en cours d'évaluation, AWS vous pouvez d'abord valider le compte, puis le rôle, puis l'utilisateur assumé. Ce dernier est identifié par le nom de session de rôle qui est spécifié lorsqu'il endosse le rôle. Par conséquent, nous vous recommandons vivement d'inclure explicitement l'ARN du compte d'un utilisateur, ou inclure à la fois l'ARN d'un rôle et l'ARN du compte contenant le rôle. -
L'
NotPrincipalélément n'est pas pris en charge dans les politiques de contrôle des services (SCP) et les politiques de contrôle des ressources (RCP).
Alternatives à l'NotPrincipalélément
Lorsque vous gérez le contrôle d'accès dans AWS, il peut arriver que vous deviez refuser explicitement à tous les principaux l'accès à une ressource, à l'exception d'un ou de plusieurs principaux que vous spécifiez. AWS
recommande d'utiliser une instruction Deny avec des clés contextuelles de condition globales pour un contrôle plus précis et un dépannage simplifié. Les exemples suivants montrent des approches alternatives utilisant des opérateurs de condition tels que StringNotEquals ou ArnNotEquals pour refuser l'accès à tous les principaux, à l'exception de ceux spécifiés dans l'élément Condition.
Exemple de scénario utilisant un rôle IAM
Vous pouvez utiliser une politique basée sur les ressources avec une instruction Deny pour empêcher tous les rôles IAM, à l'exception de ceux spécifiés dans l'élément Condition, d'accéder à vos ressources ou de les manipuler. Cette approche repose sur le principe AWS de sécurité selon lequel un refus explicite a toujours priorité sur toute instruction d'autorisation et contribue à maintenir le principe du moindre privilège au sein de votre AWS infrastructure.
Au lieu de l'utiliserNotPrincipal, nous vous recommandons d'utiliser une instruction Deny avec des clés contextuelles de condition globales et l'opérateur de condition, comme ArnNotEqualspour autoriser explicitement un rôle IAM à accéder à vos ressources. L'exemple suivant permet aws:PrincipalArn d'autoriser explicitement le rôle read-only-role à accéder aux compartiments Amazon S3 du Bucket_Account_Audit dossier.
Exemple de scénario utilisant un principal de service
Vous pouvez utiliser une instruction Deny pour empêcher tous les principaux de service, à l'exception de ceux spécifiés dans l'Conditionélément, d'accéder à vos ressources ou de les manipuler. Cette approche est particulièrement utile lorsque vous devez mettre en œuvre des contrôles d'accès précis ou établir des limites de sécurité entre les différents services et applications de votre AWS
environnement.
Au lieu de l'utiliserNotPrincipal, nous vous recommandons d'utiliser une instruction Deny avec des clés contextuelles de condition globales et l'opérateur de condition StringNotEqualspour autoriser explicitement un principal de service à accéder à vos ressources. L'exemple suivant permet aws:PrincipalServiceName d'autoriser explicitement le principal du AWS CodeBuild service à accéder aux compartiments Amazon S3 du BUCKETNAME dossier.