AWS Cloud9 n'est plus disponible pour les nouveaux clients. Les clients existants de AWS Cloud9 peuvent continuer à utiliser le service normalement. En savoir plus
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.
Accès aux instances sans entrée EC2 avec AWS Systems Manager
Une « EC2 instance sans entrée » créée pour un EC2 environnement permet de se connecter AWS Cloud9 à son EC2 instance Amazon sans avoir à ouvrir de ports entrants sur cette instance. Vous pouvez sélectionner l'option d'interdiction d'entrée lorsque vous créez un EC2 environnement à l'aide de la console, de l'interface de ligne de commande ou d'une AWS CloudFormation pile. Pour plus d'informations sur la création d'un environnement à l'aide de la console ou de l'interface de ligne de commande, consultezÉtape 1 : Créer un environnement.
Important
L'utilisation de Systems Manager Session Manager pour gérer les connexions à votre EC2 instance est gratuite.
Lorsque vous sélectionnez un type d'environnement sur la page Créer un environnement de la console, vous pouvez choisir une nouvelle EC2 instance qui nécessite une connectivité entrante ou une nouvelle EC2 instance sans entrée qui ne nécessite pas les éléments suivants :
-
Nouvelle EC2 instance : avec cette configuration, le groupe de sécurité de l'instance dispose d'une règle autorisant le trafic réseau entrant. Le trafic réseau entrant est limité aux adresses IP approuvées pour les connexions AWS Cloud9. Un port entrant ouvert permet de se AWS Cloud9 connecter via SSH à son instance. Si vous utilisez le gestionnaire de session AWS Systems Manager, vous pouvez accéder à votre EC2 instance Amazon via SSM sans ouvrir de ports entrants (aucune entrée). Cette méthode ne s'applique qu'aux nouvelles EC2 instances Amazon. Pour de plus amples informations, veuillez consulter Avantages de l'utilisation de Systems Manager pour les EC2 environnements.
-
Calcul existant : cette configuration permet d'accéder à une EC2 instance Amazon existante qui nécessite des informations de connexion SSH pour lesquelles l'instance doit disposer d'une règle de groupe de sécurité entrant. Si vous sélectionnez cette option, une fonction du service est automatiquement créée. Vous pouvez voir le nom de la fonction du service dans une note au bas de l'écran de configuration.
Si vous créez un environnement à l'aide de AWS CLI, vous pouvez configurer une EC2 instance sans entrée en définissant l'--connection-type CONNECT_SSM
option lors de l'appel de la create-environment-ec2
commande. Pour plus d'informations sur la création du rôle de service et du profil d'instance requis, consultez Gestion des profils d'instance pour Systems Manager à l'aide du AWS CLI.
Après avoir créé un environnement utilisant une EC2 instance sans entrée, vérifiez les points suivants :
-
Le gestionnaire de session de Systems Manager est autorisé à effectuer des actions sur l' EC2 instance en votre nom. Pour de plus amples informations, veuillez consulter Gestion des autorisations Systems Manager.
-
AWS Cloud9 les utilisateurs peuvent accéder à l'instance gérée par le gestionnaire de session. Pour de plus amples informations, veuillez consulter Accorder aux utilisateurs l'accès aux instances gérées par le Session Manager.
Avantages de l'utilisation de Systems Manager pour les EC2 environnements
Permettre au gestionnaire de session de gérer la connexion sécurisée entre AWS Cloud9 et son EC2 instance offre deux avantages essentiels :
-
Pas de nécessité d'ouvrir des ports entrants pour l'instance
-
Option de lancement de l'instance dans un sous-réseau public ou privé
Gestion des autorisations Systems Manager
Par défaut, Systems Manager n'est pas autorisé à effectuer des actions sur les EC2 instances. L'accès est fourni via un profil d'instance AWS Identity and Access Management (IAM). (Un profil d'instance est un conteneur qui transmet les informations du rôle IAM à une EC2 instance lors du lancement.)
Lorsque vous créez l' EC2 instance sans entrée à l'aide de la AWS Cloud9 console, le rôle de service (AWSCloud9SSMAccessRole
) et le profil d'instance IAM (AWSCloud9SSMInstanceProfile
) sont créés automatiquement pour vous. (Vous pouvez afficher AWSCloud9SSMAccessRole
dans la console de gestion IAM. Les profils d'instance ne s'affichent pas dans la console IAM.)
Important
Si vous créez un EC2 environnement sans entrée pour la première fois avec AWS CLI, vous devez définir explicitement le rôle de service et le profil d'instance requis. Pour de plus amples informations, veuillez consulter Gestion des profils d'instance pour Systems Manager à l'aide du AWS CLI.
Important
Si vous créez un AWS Cloud9 environnement et que vous utilisez Amazon EC2 Systems Manager avec les AWSCloud9User
politiques AWSCloud9Administrator
ou les politiques associées, vous devez également joindre une politique personnalisée dotée d'autorisations IAM spécifiques, voirPolitique IAM personnalisée pour la création d'un environnement SSM. Cela est dû à un problème d'autorisation lié aux AWSCloud9User
politiques AWSCloud9Administrator
et.
Pour une protection de sécurité supplémentaire, le rôle AWS Cloud9 lié au service comporte une PassRole
restriction dans sa AWSCloud9ServiceRolePolicy
politique. AWSServiceRoleforAWSCloud9
Lorsque vous transmettez un rôle IAM à un service, il autorise ce service à assumer le rôle et à exécuter des actions en votre nom. Dans ce cas, l'PassRole
autorisation garantit que seul le AWSCloud9SSMAccessRole
rôle (et son autorisation) AWS Cloud9 peut être transmis à une EC2 instance. Cela limite les actions pouvant être effectuées sur l' EC2 instance à celles requises par AWS Cloud9.
Note
Si vous n'avez plus besoin d'utiliser Systems Manager pour accéder à une instance, vous pouvez supprimer le rôle de service AWSCloud9SSMAccessRole
. Pour plus d'informations, consultez Suppression de rôles ou de profils d'instance dans le guide de l'utilisateur IAM.
Gestion des profils d'instance pour Systems Manager à l'aide du AWS CLI
Vous pouvez également créer un EC2 environnement sans entrée avec le. AWS CLI Lorsque vous appelez create-environment-ec2
, affectez à l'option --connection-type
la valeur CONNECT_SSM
.
Si vous utilisez cette option, le rôle de service AWSCloud9SSMAccessRole
et le profil AWSCloud9SSMInstanceProfile
ne sont pas automatiquement créés. Par conséquent, pour créer le profil de service et le profil d'instance requis, effectuez l'une des opérations suivantes :
-
Créez un EC2 environnement à l'aide de la console une fois que vous avez le rôle de
AWSCloud9SSMAccessRole
service etAWSCloud9SSMInstanceProfile
créé automatiquement par la suite. Une fois créés, le rôle de service et le profil d'instance sont disponibles pour tous les EC2 environnements supplémentaires créés à l'aide du AWS CLI. -
Exécutez les AWS CLI commandes suivantes pour créer le rôle de service et le profil d'instance.
aws iam create-role --role-name AWSCloud9SSMAccessRole --path /service-role/ --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com","cloud9.amazonaws.com"] },"Action": "sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSCloud9SSMAccessRole --policy-arn arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile aws iam create-instance-profile --instance-profile-name AWSCloud9SSMInstanceProfile --path /cloud9/ aws iam add-role-to-instance-profile --instance-profile-name AWSCloud9SSMInstanceProfile --role-name AWSCloud9SSMAccessRole
Accorder aux utilisateurs l'accès aux instances gérées par le Session Manager
Pour ouvrir un AWS Cloud9 environnement connecté à une EC2 instance par le biais de Systems Manager, un utilisateur doit être autorisé à effectuer l'opération d'API,StartSession
. Cette opération établit une connexion à l' EC2 instance gérée pour une session du gestionnaire de session. Vous pouvez accorder l'accès aux utilisateurs en utilisant une stratégie gérée AWS Cloud9 spécifique (recommandée) ou en modifiant une stratégie IAM et en ajoutant les autorisations nécessaires.
Méthode | Description |
---|---|
Utiliser AWS Cloud9 une politique gérée spécifique |
Nous recommandons d'utiliser des politiques AWS gérées pour permettre aux utilisateurs d'accéder aux EC2 instances gérées par Systems Manager. Les politiques gérées fournissent un ensemble d'autorisations pour les cas AWS Cloud9 d'utilisation standard et peuvent être facilement associées à une entité IAM. Toutes les politiques gérées incluent également les autorisations d'exécuter les opération d'API
ImportantSi vous créez un AWS Cloud9 environnement et que vous utilisez Amazon EC2 Systems Manager avec les Pour de plus amples informations, veuillez consulter AWS politiques gérées pour AWS Cloud9. |
Modification d'une politique IAM et ajout d'instructions de politique requises |
Pour modifier une politique existante, vous pouvez ajouter des autorisations pour l'API Lors de la modification de la politique, ajoutez l'policy statement (voir ce qui suit) qui permet à l'opération d'API |
Vous pouvez utiliser les autorisations suivantes pour exécuter l'opération d'API StartSession
. La clé de ssm:resourceTag
condition indique qu'une session de gestionnaire de session peut être démarrée pour n'importe quelle instance (Resource: arn:aws:ec2:*:*:instance/*
) à condition que l'instance soit un environnement de AWS Cloud9 EC2 développement (aws:cloud9:environment
).
Note
Les politiques gérées suivantes incluent également ces instructions de politique : AWSCloud9Administrator
, AWSCloud9User
et AWSCloud9EnvironmentMember
.
{ "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }
Utilisation AWS CloudFormation pour créer des environnements sans entrée EC2
Lorsque vous utilisez un AWS CloudFormation modèle pour définir un environnement de EC2 développement Amazon sans entrée, procédez comme suit avant de créer la pile :
-
Créez le rôle de service
AWSCloud9SSMAccessRole
et le profil d'instanceAWSCloud9SSMInstanceProfile
. Pour de plus amples informations, veuillez consulter Création d'un rôle de service et d'un profil d'instance à l'aide d'un AWS CloudFormation modèle. -
Mettez à jour la politique pour l'entité IAM qui appelle AWS CloudFormation. Ainsi, l'entité peut démarrer une session du gestionnaire de session qui se connecte à l' EC2 instance. Pour de plus amples informations, veuillez consulter Ajout d'autorisations Systems Manager à une politique IAM.
Création d'un rôle de service et d'un profil d'instance à l'aide d'un AWS CloudFormation modèle
Vous devez créer le rôle de service AWSCloud9SSMAccessRole
et le profil d'instance AWSCloud9SSMInstanceProfile
pour permettre à Systems Manager de gérer l' EC2 instance qui soutient votre environnement de développement.
Si vous avez déjà créé AWSCloud9SSMAccessRole
et AWSCloud9SSMInstanceProfile
en créant un EC2 environnement sans entrée with the console ou en exécutant des AWS CLI commandes, le rôle de service et le profil d'instance peuvent déjà être utilisés.
Note
Supposons que vous tentiez de créer une AWS CloudFormation pile pour un EC2 environnement sans entrée mais que vous n'ayez pas créé au préalable le rôle de service et le profil d'instance requis. La pile n'est pas créée et le message d'erreur suivant s'affiche :
Profil d'instance Le AWSCloud9 SSMInstance profil n'existe pas dans le compte.
Lorsque vous créez un EC2 environnement sans entrée pour la première fois AWS CloudFormation, vous pouvez définir les ressources AWSCloud9SSMAccessRole
et en AWSCloud9SSMInstanceProfile
tant que ressources IAM dans le modèle.
Cet extrait d'un exemple de modèle montre comment définir ces ressources. L'AssumeRole
action renvoie des informations d'identification de sécurité qui permettent d'accéder à la fois à AWS Cloud9 l'environnement et à son EC2 instance.
AWSTemplateFormatVersion: 2010-09-09 Resources: AWSCloud9SSMAccessRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - cloud9.amazonaws.com - ec2.amazonaws.com Action: - 'sts:AssumeRole' Description: 'Service linked role for AWS Cloud9' Path: '/service-role/' ManagedPolicyArns: - arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile RoleName: 'AWSCloud9SSMAccessRole' AWSCloud9SSMInstanceProfile: Type: "AWS::IAM::InstanceProfile" Properties: InstanceProfileName: AWSCloud9SSMInstanceProfile Path: "/cloud9/" Roles: - Ref: AWSCloud9SSMAccessRole
Ajout d'autorisations Systems Manager à une politique IAM
Après avoir défini une fonction du service et un profil d'instance dans le modèle AWS CloudFormation, assurez-vous que l'entité IAM qui crée la pile a l'autorisation de démarrer une séance Session Manager. Une session est une connexion établie avec l' EC2 instance à l'aide du Gestionnaire de session.
Note
Si vous n'ajoutez pas d'autorisations pour démarrer une session du gestionnaire de session avant de créer une pile pour un EC2 environnement sans entrée, une AccessDeniedException
erreur est renvoyée.
Ajoutez les autorisations suivantes à la politique de l'entité IAM en appelant AWS CloudFormation.
{ "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }
Configuration de points de terminaison de VPC pour Amazon S3 pour télécharger les dépendances.
Si l' EC2 instance de votre AWS Cloud9 environnement n'a pas accès à Internet, créez un point de terminaison VPC pour un compartiment Amazon S3 spécifié. Ce compartiment contient les dépendances nécessaires pour conserver votre IDE up-to-date.
La configuration d'un point de terminaison d'un VPC pour Amazon S3 implique également de personnaliser la stratégie d'accès. Vous voulez que la stratégie d'accès autorise l'accès uniquement au compartiment S3 approuvé contenant les dépendances à télécharger.
Note
Vous pouvez créer et configurer des points de terminaison VPC à l'aide de l'API AWS Management Console, AWS CLI ou Amazon VPC. La procédure suivante explique comment créer un point de terminaison d'un VPC à l'aide de l'interface de la console.
Création et configuration d'un point de terminaison de VPC pour Amazon S3
-
Dans le AWS Management Console, accédez à la page de console d'Amazon VPC.
-
Dans le volet de navigation, choisissez Points de terminaison.
-
Dans la page Points de terminaison, choisissez Créer un point de terminaison.
-
Dans la page Create Endpoint (Créer un point de terminaison), saisissez « s3 » dans le champ de recherche et appuyez sur Return (Retour) pour répertorier les points de terminaison disponibles pour Amazon S3 dans la Région AWS actuelle.
-
Dans la liste des points de terminaison Amazon S3 retournés, sélectionnez le type Passerelle.
-
Choisissez ensuite le VPC qui contient l'instance de EC2 votre environnement.
-
Choisissez maintenant la table de routage du VPC. De cette façon, les sous-réseaux associés peuvent accéder au point de terminaison. L' EC2 instance de votre environnement se trouve dans l'un de ces sous-réseaux.
-
Dans la section Policy (Politique), choisissez l'option Custom (Personnalisé) et remplacez la politique standard par celle qui suit.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "Access-to-C9-bucket-only", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::{bucket_name}/content/dependencies/*" } ] }
Pour l'élément
Resource
, remplacez{bucket_name}
par le nom réel du compartiment qui est disponible dans votre Région AWS. Par exemple, si vous utilisez AWS Cloud9 dans la région Europe (Irlande), vous spécifiez ce qui suit"Resource": "arn:aws:s3:::static-eu-west-1-prod-static-hld3vzaf7c4h/content/dependencies/
:.Le tableau suivant répertorie les noms de bucket pour le Régions AWS where AWS Cloud9 is available.
Compartiments Amazon S3 dans les régions AWS Cloud9 Région AWS Nom du compartiment USA Est (Ohio)
static-us-east-2-prod-static-1c3sfcvf9hy4m
USA Est (Virginie du Nord)
static-us-east-1-prod-static-mft1klnkc4hl
USA Ouest (Oregon)
static-us-west-2-prod-static-p21mksqx9zlr
USA Ouest (Californie du Nord)
static-us-west-1-prod-static-16d59zrrp01z0
Afrique (Le Cap)
static-af-south-1-prod-static-v6v7i5ypdppv
Asie-Pacifique (Hong Kong)
static-ap-east-1-prod-static-171xhpfkrorh6
Asia Pacific (Mumbai) static-ap-south-1-prod-static-ykocre202i9d
Asie-Pacifique (Osaka) static-ap-northeast-3-prod-static-ivmxqzrx2ioi
Asia Pacific (Seoul) static-ap-northeast-2-prod-static-1wxyctlhwiajm
Asie-Pacifique (Singapour) static-ap-southeast-1-prod-static-13ibpyrx4vk6d
Asie-Pacifique (Sydney)
static-ap-southeast-2-prod-static-1cjsl8bx27rfu
Asie-Pacifique (Tokyo)
static-ap-northeast-1-prod-static-4fwvbdisquj8
Canada (Centre)
static-ca-central-1-prod-static-g80lpejy486c
Europe (Francfort)
static-eu-central-1-prod-static-14lbgls2vrkh
Europe (Irlande)
static-eu-west-1-prod-static-hld3vzaf7c4h
Europe (Londres)
static-eu-west-2-prod-static-36lbg202837x
Europe (Milan)
static-eu-south-1-prod-static-1379tzkd3ni7d
Europe (Paris)
static-eu-west-3-prod-static-1rwpkf766ke58
Europe (Stockholm)
static-eu-north-1-prod-static-1qzw982y7yu7e
Moyen-Orient (Bahreïn)
static-me-south-1-prod-static-gmljex38qtqx
Amérique du Sud (São Paulo)
static-sa-east-1-prod-static-1cl8k0y7opidt
Israël (Tel Aviv)
static-il-central-1-prod-static-k02vrnhcesue
-
Choisissez Créer un point de terminaison.
Si vous avez fourni les bonnes informations de configuration, un message affiche l'ID du point de terminaison créé.
-
Pour vérifier que votre IDE peut accéder au compartiment Amazon S3, démarrez une séance de terminal en sélectionnant Fenêtre, Nouvelle fenêtre dans la barre de menus. Exécutez ensuite la commande suivante, en remplaçant
{bucket_name}
avec le nom réel du compartiment pour votre région.ping {bucket_name}.s3.{region}.amazonaws.com.
Par exemple, si vous avez créé un point de terminaison pour un compartiment S3 dans la région USA Est (Virginie du Nord), exécutez la commande suivante.
ping static-us-east-1-prod-static-mft1klnkc4hl.s3.us-east-1.amazonaws.com
Si le ping reçoit une réponse, cela confirme que votre IDE peut accéder au compartiment et à ses dépendances.
Pour plus d'informations sur cette fonctionnalité, consultez Endpoints for Amazon S3 dans le AWS PrivateLinkGuide.
Configuration des points de terminaison de VPC pour une connectivité privée
Lorsque vous lancez une instance dans un sous-réseau avec l'option access using Systems Manager (Accès via Systems Manager), son groupe de sécurité n'a pas de règle entrante permettant d'autoriser le trafic réseau entrant. Toutefois, le groupe de sécurité possède une règle sortante qui autorise le trafic sortant de l'instance. Cela est nécessaire pour télécharger les packages et les bibliothèques nécessaires pour maintenir l' AWS Cloud9 IDE à jour.
Pour empêcher le trafic sortant et entrant pour l'instance, créez et configurez des points de terminaison d'un VPC Amazon pour Systems Manager. Avec un point de terminaison VPC d'interface (point de terminaison d'interface), vous pouvez vous connecter à des services alimentés par. AWS PrivateLink AWS PrivateLink est une technologie qui permet d'accéder en privé à Amazon EC2 et à Systems Manager APIs en utilisant des adresses IP privées. Pour configurer les points de terminaison de VPC pour qu'ils utilisent Systems Manager, suivez les instructions fournies par cette ressource de centre de connaissances
Avertissement
Supposons que vous configuriez un groupe de sécurité qui n'autorise pas le trafic réseau entrant ou sortant. Dans ce cas, l' EC2 instance qui prend en charge votre AWS Cloud9 IDE n'a pas accès à Internet. Vous devez créer un point de terminaison Amazon S3 pour votre VPC afin d'autoriser l'accès aux dépendances contenues dans un compartiment S3 approuvé. En outre, certains Services AWS, tels que AWS Lambda, peuvent ne pas fonctionner comme prévu sans accès à Internet.
Des frais de AWS PrivateLink traitement des données sont facturés pour chaque gigaoctet traité via le point de terminaison VPC. Et ce, quelle que soit la source ou la destination du trafic. Pour en savoir plus, consultez Pricing AWS PrivateLink