

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.

# Déployez des contrôles d'accès préventifs basés sur les attributs pour les sous-réseaux publics
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets"></a>

*Joel Alfredo Nunez González et Samuel Ortega Sancho, Amazon Web Services*

## Résumé
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-summary"></a>

Dans les architectures réseau centralisées, les clouds privés virtuels d'inspection et de périphérie (VPCs) concentrent tout le trafic entrant et sortant, tel que le trafic à destination et en provenance d'Internet. Cela peut toutefois créer des goulots d'étranglement ou entraîner l'atteinte des limites des quotas de service AWS. Le déploiement de la sécurité périphérique du réseau en même temps que les charges de travail qu'il implique VPCs offre une évolutivité sans précédent par rapport à l'approche centralisée plus courante. C'est ce qu'on appelle une architecture de *périphérie distribuée*.

Bien que le déploiement de sous-réseaux publics dans les comptes de charge de travail puisse présenter des avantages, il présente également de nouveaux risques de sécurité car il augmente la surface d'attaque. Nous vous recommandons de déployer uniquement des ressources Elastic Load Balancing (ELB), telles que des équilibreurs de charge d'application ou des passerelles NAT dans leurs sous-réseaux publics. VPCs L'utilisation d'équilibreurs de charge et de passerelles NAT dans des sous-réseaux publics dédiés vous permet de mettre en œuvre un contrôle précis du trafic entrant et sortant.

Le *contrôle d'accès basé sur les attributs* (ABAC) consiste à créer des autorisations détaillées basées sur les attributs de l'utilisateur, tels que le département, le rôle du poste et le nom de l'équipe. Pour plus d'informations, consultez [ABAC pour AWS](https://aws.amazon.com/identity/attribute-based-access-control/). ABAC peut fournir des garde-fous pour les sous-réseaux publics des comptes de charge de travail. Cela permet aux équipes d'application d'être agiles, sans compromettre la sécurité de l'infrastructure.

Ce modèle décrit comment sécuriser les sous-réseaux publics en implémentant l'ABAC par le biais d'une [politique de contrôle des services (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans AWS Organizations et de [politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans AWS Identity and Access Management (IAM). Vous appliquez le SCP à un compte membre d'une organisation ou à une unité organisationnelle (UO). Ces politiques ABAC permettent aux utilisateurs de déployer des passerelles NAT dans les sous-réseaux cibles et les empêchent de déployer d'autres ressources Amazon Elastic Compute Cloud (Amazon EC2), telles que des EC2 instances et des interfaces réseau élastiques.  

## Conditions préalables et limitations
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-prereqs"></a>

**Conditions préalables**
+ Une organisation dans AWS Organizations
+ Accès administratif au compte racine d'AWS Organizations
+ Dans l'organisation, un compte de membre actif ou une unité d'organisation pour tester le SCP

**Limites**
+ Le SCP de cette solution n'empêche pas les services AWS qui utilisent un rôle lié à un service de déployer des ressources dans les sous-réseaux cibles. Elastic Load Balancing (ELB), Amazon Elastic Container Service (Amazon ECS) et Amazon Relational Database Service (Amazon RDS) sont des exemples de ces services. Pour plus d'informations, consultez les [effets du SCP sur les autorisations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) dans la documentation d'AWS Organizations. Mettez en œuvre des contrôles de sécurité pour détecter ces exceptions.

## Architecture
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-architecture"></a>

**Pile technologique cible**
+ SCP appliqué à un compte AWS ou à une unité d'organisation dans AWS Organizations
+ Les rôles IAM suivants :
  + `AutomationAdminRole`— Utilisé pour modifier les balises de sous-réseau et créer des ressources VPC après avoir implémenté le SCP
  + `TestAdminRole`— Utilisé pour vérifier si le SCP empêche les autres principaux IAM, y compris ceux disposant d'un accès administratif, d'effectuer les actions réservées au `AutomationAdminRole`

**Architecture cible**

![\[Les balises empêchent les utilisateurs de déployer des ressources autres que les passerelles NAT dans des sous-réseaux publics\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/25f22f67-5bb6-42ac-8fd6-836e00c436f1/images/b8345c8c-0fc5-46a3-be60-c171979cf979.png)


1. Vous créez le rôle `AutomationAdminRole` IAM dans le compte cible. Ce rôle est autorisé à gérer les ressources réseau. Notez les autorisations suivantes qui sont exclusives à ce rôle :
   + Ce rôle peut créer VPCs des sous-réseaux publics.
   + Ce rôle peut modifier les attributions de balises pour les sous-réseaux cibles.
   + Ce rôle peut gérer ses propres autorisations.

1. Dans AWS Organizations, vous appliquez le SCP au compte ou à l'unité d'organisation AWS cible. Pour un exemple de politique, voir [Informations supplémentaires sur](#deploy-preventative-attribute-based-access-controls-for-public-subnets-additional) ce modèle.

1. Un utilisateur ou un outil du CI/CD pipeline peut assumer le `AutomationAdminRole` rôle d'appliquer la `SubnetType` balise aux sous-réseaux cibles.

1. En assumant d'autres rôles IAM, les responsables IAM autorisés de votre organisation peuvent gérer les passerelles NAT dans les sous-réseaux cibles et les autres ressources réseau autorisées dans le compte AWS, telles que les tables de routage. Utilisez les politiques IAM pour accorder ces autorisations. Pour plus d'informations, consultez [Gestion des identités et des accès pour Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/security-iam.html).

**Automatisation et mise à l'échelle**

Pour protéger les sous-réseaux publics, les [balises AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) correspondantes doivent être appliquées. Une fois le SCP appliqué, les passerelles NAT sont le seul type de EC2 ressource Amazon que les utilisateurs autorisés peuvent créer dans les sous-réseaux dotés de cette balise. `SubnetType:IFA` (`IFA`désigne les *actifs connectés à* Internet.) Le SCP empêche la création d'autres EC2 ressources Amazon, telles que des instances et des interfaces réseau élastiques. Nous vous recommandons d'utiliser un CI/CD pipeline qui assume le `AutomationAdminRole` rôle de créer des ressources VPC afin que ces balises soient correctement appliquées aux sous-réseaux publics.

## Outils
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-tools"></a>

**Services AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) est un service de gestion de comptes qui vous aide à consolider plusieurs comptes AWS au sein d'une organisation que vous créez et gérez de manière centralisée. Dans AWS Organizations, vous pouvez mettre en œuvre des [politiques de contrôle des services (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html), qui sont un type de politique que vous pouvez utiliser pour gérer les autorisations au sein de votre organisation.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages liés à l'utilisation de l'infrastructure évolutive d'AWS.

## Épopées
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-epics"></a>

### Appliquer le SCP
<a name="apply-the-scp"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un rôle d'administrateur de test.  | Créez un rôle IAM nommé `TestAdminRole` dans le compte AWS cible. Associez la politique IAM gérée par **AdministratorAccess**AWS au nouveau rôle. Pour obtenir des instructions, consultez [la section Création d'un rôle pour déléguer des autorisations à un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dans la documentation IAM. | Administrateur AWS | 
| Créez le rôle d'administrateur d'automatisation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html)Voici un exemple de politique de confiance que vous pouvez utiliser pour tester le rôle à partir du `111122223333` compte.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                    "arn:aws:iam::111122223333:root"<br />                ]<br />            },<br />            "Action": "sts:AssumeRole",<br />            "Condition": {}<br />        }<br />    ]<br />}</pre> | Administrateur AWS | 
| Créez et attachez le SCP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrateur AWS | 

### Testez le SCP
<a name="test-the-scp"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un VPC ou un sous-réseau. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrateur AWS | 
| Gérez les tags. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrateur AWS | 
| Déployez des ressources dans les sous-réseaux cibles. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrateur AWS | 
| Gérez le AutomationAdminRole rôle. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrateur AWS | 

### Nettoyage
<a name="clean-up"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Nettoyez les ressources déployées. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrateur AWS | 

## Ressources connexes
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-resources"></a>

**Documentation AWS**
+ [Fixation et détachement SCPs](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_attach.html)
+ [Création, mise à jour et suppression SCPs](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html)
+ [Déployez des contrôles d'accès basés sur des attributs de détection pour les sous-réseaux publics à l'aide d'AWS Config](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-detective-attribute-based-access-controls-for-public-subnets-by-using-aws-config.html)
+ [Contrôles de détection](https://docs.aws.amazon.com/prescriptive-guidance/latest/aws-security-controls/detective-controls.html)
+ [Référence d'autorisation de service](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html)
+ [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
+ [Qu'est-ce qu'ABAC pour AWS ?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)

**Références AWS supplémentaires**
+ [Sécurisation des balises de ressources utilisées pour l'autorisation à l'aide d'une politique de contrôle des services dans AWS Organizations](https://aws.amazon.com/es/blogs/security/securing-resource-tags-used-for-authorization-using-service-control-policy-in-aws-organizations/) (article de blog AWS)

## Informations supplémentaires
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-additional"></a>

La politique de contrôle des services suivante est un exemple que vous pouvez utiliser pour tester cette approche dans votre organisation.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyVPCActions",
      "Effect": "Deny",
      "Action": [
        "ec2:CreateVPC",
        "ec2:CreateRoute",
        "ec2:CreateSubnet",
        "ec2:CreateInternetGateway",
        "ec2:DeleteVPC",
        "ec2:DeleteRoute",
        "ec2:DeleteSubnet",
        "ec2:DeleteInternetGateway"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    },
    {
      "Sid": "AllowNATGWOnIFASubnet",
      "Effect": "Deny",
      "NotAction": [
        "ec2:CreateNatGateway",
        "ec2:DeleteNatGateway"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:subnet/*"
      ],
      "Condition": {
        "ForAnyValue:StringEqualsIfExists": {
          "aws:ResourceTag/SubnetType": "IFA"
        },
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    },
    {
      "Sid": "DenyChangesToAdminRole",
      "Effect": "Deny",
      "NotAction": [
        "iam:GetContextKeysForPrincipalPolicy",
        "iam:GetRole",
        "iam:GetRolePolicy",
        "iam:ListAttachedRolePolicies",
        "iam:ListInstanceProfilesForRole",
        "iam:ListRolePolicies",
        "iam:ListRoleTags"
      ],
      "Resource": [
        "arn:aws:iam::*:role/AutomationAdminRole"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    }
  ]
}
```