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.
Les rôles IAM ne sont pas autorisés, par défaut, à créer ou modifier des ressources VPC. Ils ne peuvent pas non plus effectuer de tâches à l'aide de l' AWS API AWS Management Console AWS CLI, ou. Un administrateur IAM doit créer des politiques IAM autorisant les rôles à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. L'administrateur doit ensuite attacher ces politiques aux rôles IAM qui ont besoin de ces autorisations.
Pour apprendre à créer une politique basée sur l'identité IAM à l'aide de ces exemples de documents de politique JSON, consultez Création de politiques dans l'onglet JSON dans le Guide de l'utilisateur IAM.
Table des matières
Bonnes pratiques en matière de politiques
Les politiques basées sur l'identité déterminent si une personne peut créer, consulter ou supprimer des ressources Amazon VPC dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
-
Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations à vos utilisateurs et à vos charges de travail, utilisez les politiques AWS gérées qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez politiques gérées par AWS ou politiques gérées par AWS pour les activités professionnelles dans le Guide de l’utilisateur IAM.
-
Accordez les autorisations de moindre privilège : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées autorisations de moindre privilège. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez politiques et autorisations dans IAM dans le Guide de l’utilisateur IAM.
-
Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que AWS CloudFormation. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.
-
Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez Validation de politiques avec IAM Access Analyzer dans le Guide de l’utilisateur IAM.
-
Exiger l'authentification multifactorielle (MFA) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez Sécurisation de l’accès aux API avec MFA dans le Guide de l’utilisateur IAM.
Pour plus d’informations sur les bonnes pratiques dans IAM, consultez Bonnes pratiques de sécurité dans IAM dans le Guide de l’utilisateur IAM.
Utiliser la console Amazon VPC
Pour accéder à la console Amazon VPC, vous devez disposer d'un ensemble minimum d'autorisations. Ces autorisations doivent vous permettre de répertorier et de consulter les informations relatives aux ressources Amazon VPC de votre AWS compte. Si vous créez une politique basée sur l'identité qui est plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu pour les entités (rôles IAM) tributaires de cette politique.
La stratégie suivante autorise les utilisateurs à répertorier les ressources dans la console VPC, mais pas à les créer, à les mettre à jour ou à les supprimer.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeAccountAttributes",
"ec2:DescribeAddresses",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeClassicLinkInstances",
"ec2:DescribeClientVpnEndpoints",
"ec2:DescribeCustomerGateways",
"ec2:DescribeDhcpOptions",
"ec2:DescribeEgressOnlyInternetGateways",
"ec2:DescribeFlowLogs",
"ec2:DescribeInternetGateways",
"ec2:DescribeManagedPrefixLists",
"ec2:DescribeMovingAddresses",
"ec2:DescribeNatGateways",
"ec2:DescribeNetworkAcls",
"ec2:DescribeNetworkInterfaceAttribute",
"ec2:DescribeNetworkInterfacePermissions",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribePrefixLists",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroupReferences",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSecurityGroupRules",
"ec2:DescribeStaleSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2:DescribeTrafficMirrorFilters",
"ec2:DescribeTrafficMirrorSessions",
"ec2:DescribeTrafficMirrorTargets",
"ec2:DescribeTransitGateways",
"ec2:DescribeTransitGatewayVpcAttachments",
"ec2:DescribeTransitGatewayRouteTables",
"ec2:DescribeVpcAttribute",
"ec2:DescribeVpcClassicLink",
"ec2:DescribeVpcClassicLinkDnsSupport",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeVpcEndpointConnectionNotifications",
"ec2:DescribeVpcEndpointConnections",
"ec2:DescribeVpcEndpointServiceConfigurations",
"ec2:DescribeVpcEndpointServicePermissions",
"ec2:DescribeVpcEndpointServices",
"ec2:DescribeVpcPeeringConnections",
"ec2:DescribeVpcs",
"ec2:DescribeVpnConnections",
"ec2:DescribeVpnGateways",
"ec2:GetManagedPrefixListAssociations",
"ec2:GetManagedPrefixListEntries"
],
"Resource": "*"
}
]
}
Il n'est pas nécessaire d'accorder des autorisations de console minimales pour les rôles qui appellent uniquement l'API AWS CLI ou l' AWS API. Autorisez plutôt l'accès uniquement aux actions qui correspondent à l'opération d'API que le rôle doit effectuer.
Créer un VPC avec un sous-réseau public
L'exemple suivant permet aux rôles de créer des sous-réseaux VPCs, des tables de routage et des passerelles Internet. Les rôles peuvent également attacher une passerelle Internet à un VPC et créer des routes dans les tables de routage. L'action ec2:ModifyVpcAttribute
permet aux rôles d'activer les noms d'hôte DNS pour le VPC, de sorte que chaque instance lancée dans un VPC reçoit un nom d'hôte DNS.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"ec2:CreateVpc",
"ec2:CreateSubnet",
"ec2:DescribeAvailabilityZones",
"ec2:CreateRouteTable",
"ec2:CreateRoute",
"ec2:CreateInternetGateway",
"ec2:AttachInternetGateway",
"ec2:AssociateRouteTable",
"ec2:ModifyVpcAttribute"
],
"Resource": "*"
}
]
}
La politique précédente permet également aux rôles de créer un VPC dans la console Amazon VPC.
Modifier et supprimer les ressources VPC
Vous avez la possibilité de contrôler les ressources VPC que les rôles peuvent modifier ou supprimer. Par exemple, la stratégie suivante permet aux rôles de travailler avec les tables de routage et de supprimer celles comportant la balise Purpose=Test
. La stratégie précise également que les rôles peuvent uniquement supprimer les passerelles Internet qui possèdent la balise Purpose=Test
. Les rôles ne peuvent pas utiliser les tables de routage ou les passerelles Internet qui ne possèdent pas cette balise.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:DeleteInternetGateway",
"Resource": "arn:aws:ec2:*:*:internet-gateway/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Purpose
": "Test
"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:DeleteRouteTable",
"ec2:CreateRoute",
"ec2:ReplaceRoute",
"ec2:DeleteRoute"
],
"Resource": "arn:aws:ec2:*:*:route-table/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Purpose
": "Test
"
}
}
}
]
}
Gérer les groupes de sécurité
La politique suivante permet aux rôles de gérer les groupes de sécurité. La première instruction permet aux rôles de supprimer tout groupe de sécurité comportant la balise Stack=test
et de gérer les règles entrantes et sortantes de tout groupe de sécurité avec la balise Stack=test
. La deuxième instruction exige des rôles qu'ils marquent tous les groupes de sécurité qu'ils créent avec la balise Stack=Test
. La troisième instruction permet aux rôles de créer des identifications lors de la création d'un groupe de sécurité. La quatrième instruction permet aux rôles d'afficher tout groupe de sécurité et toute règle de groupe de sécurité. La cinquième instruction permet aux rôles de créer un groupe de sécurité dans un VPC.
Note
Cette politique ne peut pas être utilisée par le AWS CloudFormation service pour créer un groupe de sécurité avec les balises requises. Si vous supprimez la condition de l'action ec2:CreateSecurityGroup
qui nécessite la balise, la politique fonctionnera.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:RevokeSecurityGroupIngress",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:UpdateSecurityGroupRuleDescriptionsEgress",
"ec2:RevokeSecurityGroupEgress",
"ec2:DeleteSecurityGroup",
"ec2:ModifySecurityGroupRules",
"ec2:UpdateSecurityGroupRuleDescriptionsIngress"
],
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Stack": "test"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:CreateSecurityGroup",
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/Stack": "test"
},
"ForAllValues:StringEquals": {
"aws:TagKeys": "Stack"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"StringEquals": {
"ec2:CreateAction": "CreateSecurityGroup"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeSecurityGroupRules",
"ec2:DescribeVpcs",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ec2:CreateSecurityGroup",
"Resource": "arn:aws:ec2:*:*:vpc/*"
}
]
}
Pour permettre aux rôles de modifier le groupe de sécurité associé à une instance, ajoutez l'action ec2:ModifyInstanceAttribute
à votre stratégie.
Ajoutez l'action ec2:ModifyNetworkInterfaceAttribute
à votre stratégie pour permettre aux rôles de modifier les groupes de sécurité d'une interface réseau.
Gérer les règles de groupe de sécurité
La stratégie suivante accorde aux rôles l'autorisation d'afficher tous les groupes de sécurité et toutes les règles de groupe de sécurité, d'ajouter et de supprimer des règles entrantes et sortantes pour les groupes de sécurité d'un VPC spécifique et de modifier des descriptions de règles pour le VPC spécifié. La première instruction utilise la clé de condition ec2:Vpc
pour limiter les autorisations à un VPC spécifique.
La deuxième instruction autorise les rôles à décrire tout l'ensemble des groupes de sécurité, règles de groupe de sécurité et balises. Cela permet aux rôles d'afficher les règles du groupe de sécurité pour les modifier.
{
"Version": "2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action": [
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupIngress",
"ec2:UpdateSecurityGroupRuleDescriptionsIngress",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:RevokeSecurityGroupEgress",
"ec2:UpdateSecurityGroupRuleDescriptionsEgress",
"ec2:ModifySecurityGroupRules"
],
"Resource": "arn:aws:ec2:region
:account-id
:security-group/*",
"Condition": {
"ArnEquals": {
"ec2:Vpc": "arn:aws:ec2:region
:account-id
:vpc/vpc-id
"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeSecurityGroups",
"ec2:DescribeSecurityGroupRules",
"ec2:DescribeTags"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:ModifySecurityGroupRules"
],
"Resource": "arn:aws:ec2:region
:account-id
:security-group-rule/*"
}
]
}
Lancer des instances dans un sous-réseau précis
La stratégie suivante autorise les rôles à lancer des instances dans un sous-réseau spécifique et à utiliser un groupe de sécurité spécifique dans la demande. La stratégie l'effectue en spécifiant l'ARN pour le sous-réseau et l'ARN pour le groupe de sécurité. Si les rôles tentent de lancer une instance dans un sous-réseau différent ou d'utiliser un groupe de sécurité différent, la demande échoue (à moins qu'une autre stratégie ou instruction n'autorise les rôles à le faire).
La stratégie autorise également l'utilisation des ressources de l'interface réseau. Une fois lancée dans un sous-réseau, la demande RunInstances
crée une interface réseau principale par défaut, afin que le rôle ait besoin d'être autorisé à créer cette ressource lors du lancement de l'instance.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": [
"arn:aws:ec2:region
::image/ami-*",
"arn:aws:ec2:region
:account
:instance/*",
"arn:aws:ec2:region
:account
:subnet/subnet-id
",
"arn:aws:ec2:region
:account
:network-interface/*",
"arn:aws:ec2:region
:account
:volume/*",
"arn:aws:ec2:region
:account
:key-pair/*",
"arn:aws:ec2:region
:account
:security-group/sg-id
"
]
}
]
}
Lancer des instances dans un VPC précis
La stratégie suivante autorise les rôles à lancer des instances dans n'importe quel sous-réseau au sein d'un VPC spécifique. La stratégie l'effectue en appliquant une clé de condition (ec2:Vpc
) à la ressource du sous-réseau.
La politique accorde également aux rôles l'autorisation de lancer des instances en utilisant uniquement AMIs les instances portant le tag « department=dev
».
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:region
:account-id
:subnet/*",
"Condition": {
"ArnEquals": {
"ec2:Vpc": "arn:aws:ec2:region
:account-id
:vpc/vpc-id
"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:region
::image/ami-*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/department
": "dev
"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": [
"arn:aws:ec2:region
:account
:instance/*",
"arn:aws:ec2:region
:account
:volume/*",
"arn:aws:ec2:region
:account
:network-interface/*",
"arn:aws:ec2:region
:account
:key-pair/*",
"arn:aws:ec2:region
:account
:security-group/*"
]
}
]
}
Bloquer l'accès public aux sous-réseaux VPCs et aux sous-réseaux
Les exemples de politique suivants accordent aux rôles l'autorisation d'utiliser la fonctionnalité VPC Block Public Access (BPA) pour bloquer l'accès public aux ressources des sous-réseaux et des sous-réseaux. VPCs
Exemple 1 : autoriser l’accès en lecture seule aux paramètres VPC BPA à l’échelle du compte et aux exclusions du VPC BPA.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VPCBPAReadOnlyAccess",
"Action": [
"ec2:DescribeVpcBlockPublicAccessOptions",
"ec2:DescribeVpcBlockPublicAccessExclusions"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
Exemple 2 : autoriser un accès complet en lecture et en écriture aux paramètres VPC BPA à l’échelle du compte et aux exclusions du VPC BPA.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VPCBPAFullAccess",
"Action": [
"ec2:DescribeVpcBlockPublicAccessOptions",
"ec2:DescribeVpcBlockPublicAccessExclusions",
"ec2:ModifyVpcBlockPublicAccessOptions",
"ec2:CreateVpcBlockPublicAccessExclusion",
"ec2:ModifyVpcBlockPublicAccessExclusion",
"ec2:DeleteVpcBlockPublicAccessExclusion"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
Exemple 3 - Autoriser l'accès à tout EC2 APIs sauf à la modification des paramètres BPA du VPC et à la création d'exclusions.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EC2FullAccess"
"Action": [
"ec2:*",
],
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "VPCBPAPartialAccess",
"Action": [
"ec2:ModifyVpcBlockPublicAccessOptions",
"ec2:CreateVpcBlockPublicAccessExclusion"
],
"Effect": "Deny",
"Resource": "*"
}
]
}
Exemples supplémentaires de stratégie Amazon VPC
Vous trouverez d'autres exemples de stratégies IAM liées à Amazon VPC dans la documentation suivante :