AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Acceder a instancias sin ingreso EC2 con AWS Systems Manager
Una « EC2 instancia sin entrada» creada para un EC2 entorno permite conectarse AWS Cloud9 a su EC2 instancia de Amazon sin necesidad de abrir ningún puerto de entrada en esa instancia. Puede seleccionar la opción de no entrada al crear un EC2 entorno mediante la consola, la interfaz de línea de comandos o una pila.AWS CloudFormation Para obtener más información acerca de cómo crear un entorno con la consola o la interfaz de la línea de comandos, consulte Paso 1: crear un entorno .
importante
El uso de Systems Manager Session Manager para administrar las conexiones a la EC2 instancia no conlleva cargos adicionales.
Al seleccionar un tipo de entorno en la página Crear entorno de la consola, puede elegir una nueva EC2 instancia que requiera conectividad entrante o una nueva EC2 instancia sin entrada que no requiera lo siguiente:
-
EC2Instancia nueva: con esta configuración, el grupo de seguridad de la instancia tiene una regla que permite el tráfico de red entrante. El tráfico de red entrante está restringido a las direcciones IP aprobadas para las conexiones de AWS Cloud9. Un puerto de entrada abierto permite conectarse AWS Cloud9 a su instancia mediante SSH. Si usa AWS Systems Manager Session Manager, puede acceder a su EC2 instancia de Amazon a través de SSM sin abrir los puertos de entrada (sin entrada). Este método solo se aplica a las nuevas EC2 instancias de Amazon. Para obtener más información, consulte Ventajas de usar Systems Manager para EC2 entornos.
-
Computación existente: con esta configuración, se accede a una EC2 instancia de Amazon existente que requiere detalles de inicio de sesión de SSH para los que la instancia debe tener una regla de grupo de seguridad entrante. Si utiliza esta opción, se crea un rol de servicio automáticamente. Puede ver el nombre del rol de servicio en una nota en la parte inferior de la pantalla de configuración.
Si vas a crear un entorno con la AWS CLI, puedes configurar una EC2 instancia sin entrada configurando la --connection-type CONNECT_SSM
opción al ejecutar el comando. create-environment-ec2
Para obtener más información acerca de la creación de la función de servicio y del perfil de instancias necesarios, consulte Administración de perfiles de instancia para Systems Manager con AWS CLI.
Tras completar la creación de un entorno que utilice una EC2 instancia sin entrada, confirme lo siguiente:
-
El administrador de sesiones de Systems Manager tiene permisos para realizar acciones en la EC2 instancia en su nombre. Para obtener más información, consulte Administración de permisos de Systems Manager.
-
AWS Cloud9 los usuarios pueden acceder a la instancia gestionada por Session Manager. Para obtener más información, consulte Proporcionar a los usuarios acceso a las instancias administradas por el Administrador de sesiones.
Ventajas de usar Systems Manager para EC2 entornos
Permitir que Session Manager gestione la conexión segura entre AWS Cloud9 y su EC2 instancia ofrece dos ventajas clave:
-
No es necesario abrir puertos entrantes para la instancia
-
Opción para lanzar la instancia en una subred pública o privada
Administración de permisos de Systems Manager
De forma predeterminada, Systems Manager no tiene permiso para realizar acciones en las EC2 instancias. El acceso se proporciona a través de un perfil de instancia AWS Identity and Access Management (IAM). (Un perfil de instancia es un contenedor que transfiere la información sobre las funciones de IAM a una EC2 instancia en el momento del lanzamiento).
Al crear la EC2 instancia sin entrada mediante la AWS Cloud9 consola, tanto el rol de servicio (AWSCloud9SSMAccessRole
) como el perfil de instancia de IAM (AWSCloud9SSMInstanceProfile
) se crean automáticamente. (Puede ver AWSCloud9SSMAccessRole
en la consola de administración de IAM. Los perfiles de instancias no se muestran en la consola de IAM).
importante
Si crea un EC2 entorno sin entrada por primera vez con AWS CLI, debe definir de forma explícita el rol de servicio y el perfil de instancia necesarios. Para obtener más información, consulte Administración de perfiles de instancia para Systems Manager con AWS CLI.
importante
Si va a crear un AWS Cloud9 entorno y utiliza Amazon EC2 Systems Manager con AWSCloud9User
las políticas AWSCloud9Administrator
o políticas adjuntas, también debe adjuntar una política personalizada que tenga permisos de IAM específicos, consultePolítica de IAM personalizada para la creación de un entorno SSM. Esto se debe a un problema de permisos con las políticas AWSCloud9Administrator
y AWSCloud9User
.
Para una protección de seguridad adicional, la función AWS Cloud9 vinculada al servicio incluye una PassRole
restricción en su política. AWSServiceRoleforAWSCloud9
AWSCloud9ServiceRolePolicy
Cuando pasa un rol de IAM a un servicio, permite a ese servicio asumir el rol y ejecutar acciones en su nombre. En este caso, el PassRole
permiso garantiza que solo AWS Cloud9 se pueda transferir el AWSCloud9SSMAccessRole
rol (y su permiso) a una EC2 instancia. Esto restringe las acciones que se pueden realizar en la EC2 instancia a solo las requeridas por AWS Cloud9 ella.
nota
Si ya no necesita utilizar Systems Manager para acceder a una instancia, puede eliminar la función de servicio AWSCloud9SSMAccessRole
. Para obtener información, consulte Eliminación de roles o perfiles de instancia en la Guía del usuario de IAM.
Administración de perfiles de instancia para Systems Manager con AWS CLI
También puede crear un EC2 entorno sin entrada con. AWS CLI Cuando llame a create-environment-ec2
, establezca la opción --connection-type
en CONNECT_SSM
.
Si utiliza esta opción, la función de servicio AWSCloud9SSMAccessRole
y AWSCloud9SSMInstanceProfile
no se crean automáticamente. Por lo tanto, para crear el perfil de servicio y el perfil de instancias necesarios, realice una de las siguientes acciones:
-
Cree un EC2 entorno utilizando la consola una vez que tenga el rol de
AWSCloud9SSMAccessRole
servicio y créelo automáticamenteAWSCloud9SSMInstanceProfile
después. Una vez creados, el rol de servicio y el perfil de instancia están disponibles para cualquier EC2 entorno adicional creado con AWS CLI. -
Ejecuta los siguientes AWS CLI comandos para crear el rol de servicio y el perfil de instancia.
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
Proporcionar a los usuarios acceso a las instancias administradas por el Administrador de sesiones
Para abrir un AWS Cloud9 entorno conectado a una EC2 instancia a través de Systems Manager, el usuario debe tener permiso para la operación de la API,StartSession
. Esta operación inicia una conexión a la EC2 instancia administrada para una sesión de Session Manager. Puede conceder acceso a los usuarios mediante una política gestionada AWS Cloud9 específica (se recomienda) o editando una política de IAM y añadiendo los permisos necesarios.
Método | Descripción |
---|---|
Utilice una AWS Cloud9 política gestionada específica |
Recomendamos usar políticas AWS administradas para permitir a los usuarios acceder a EC2 las instancias administradas por Systems Manager. Las políticas administradas proporcionan un conjunto de permisos para casos de AWS Cloud9 uso estándar y se pueden adjuntar fácilmente a una entidad de IAM. Todas las políticas administradas también incluyen los permisos para ejecutar la operación de API
importanteSi va a crear un AWS Cloud9 entorno y utiliza Amazon EC2 Systems Manager con Para obtener más información, consulte AWS políticas gestionadas para AWS Cloud9. |
Editar una política de IAM y agregar instrucciones de política obligatorias |
Para editar una política existente, puede añadir permisos para la API de Cuando edite la política, agregue la instrucción policy statement (véase a continuación), que permite que la operación de API |
Puede utilizar los siguientes permisos para ejecutar la operación de la API StartSession
. La clave de ssm:resourceTag
condición especifica que se puede iniciar una sesión del administrador de sesiones para cualquier instancia (Resource: arn:aws:ec2:*:*:instance/*
) con la condición de que la instancia sea un entorno de AWS Cloud9 EC2 desarrollo (aws:cloud9:environment
).
nota
Las siguientes políticas administradas también incluyen estas instrucciones de política: AWSCloud9Administrator
, AWSCloud9User
y 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/*" ] }
Se utiliza AWS CloudFormation para crear entornos sin entrada EC2
Cuando utilices una AWS CloudFormation plantilla para definir un entorno de EC2 desarrollo de Amazon sin entrada, haz lo siguiente antes de crear la pila:
-
Cree una función de servicio de
AWSCloud9SSMAccessRole
y un perfil de instancias deAWSCloud9SSMInstanceProfile
. Para obtener más información, consulte Crear un rol de servicio y un perfil de instancia con una AWS CloudFormation plantilla. -
Actualice la política de la entidad de IAM que realiza la llamada. AWS CloudFormation De esta forma, la entidad puede iniciar una sesión del administrador de sesiones que se conecte a la EC2 instancia. Para obtener más información, consulte Agregar permisos de Systems Manager a una política de IAM.
Crear un rol de servicio y un perfil de instancia con una AWS CloudFormation plantilla
Debe crear el rol de servicio AWSCloud9SSMAccessRole
y el perfil de instancia AWSCloud9SSMInstanceProfile
para permitir que Systems Manager administre la EC2 instancia que respalda su entorno de desarrollo.
Si ha creado AWSCloud9SSMAccessRole
anteriormente un EC2 entorno sin entrada de datos with the console o AWSCloud9SSMInstanceProfile
mediante la ejecución de AWS CLI comandos, el rol de servicio y el perfil de instancia ya están disponibles para su uso.
nota
Supongamos que intenta crear una AWS CloudFormation pila para un EC2 entorno sin entrada, pero no ha creado primero el rol de servicio y el perfil de instancia necesarios. En ese caso, la pila no se crea y aparece el siguiente mensaje de error:
El AWSCloud9 SSMInstance perfil de instancia no existe en la cuenta.
Al crear un EC2 entorno sin entrada por primera vez AWS CloudFormation, puede definir los recursos de IAM AWSCloud9SSMAccessRole
y AWSCloud9SSMInstanceProfile
como recursos de IAM en la plantilla.
Este extracto de una plantilla de ejemplo muestra cómo definir estos recursos. La AssumeRole
acción devuelve las credenciales de seguridad que proporcionan acceso tanto al AWS Cloud9 entorno como a su instancia. EC2
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
Agregar permisos de Systems Manager a una política de IAM
Después de definir un rol de servicio y un perfil de instancia en la plantilla de AWS CloudFormation, asegúrese de que la entidad de IAM que crea la pila tiene permiso para iniciar una sesión de Session Manager. Una sesión es una conexión que se realiza a la EC2 instancia mediante el Administrador de sesiones.
nota
Si no agregas permisos para iniciar una sesión del administrador de sesiones antes de crear una pila para un EC2 entorno sin entrada, se mostrará un AccessDeniedException
error.
Añada los siguientes permisos a la política para la entidad de IAM mediante una llamada a 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/*" ] }
Configuración de puntos de enlace de la VPC para Amazon S3 para descargar dependencias
Si la EC2 instancia de su AWS Cloud9 entorno no tiene acceso a Internet, cree un punto de enlace de VPC para un bucket de Amazon S3 específico. Este depósito contiene las dependencias necesarias para conservar tu IDE. up-to-date
La configuración de un punto de conexión de VPC para Amazon S3 también implica personalizar la política de acceso. Desea que la política de acceso permita el acceso solo al bucket de S3 de confianza que contiene las dependencias que se van a descargar.
nota
Puede crear y configurar puntos de enlace de VPC mediante la API AWS Management Console, AWS CLI o Amazon VPC. En el siguiente procedimiento, se muestra cómo crear un punto de conexión de VPC con la interfaz de la consola.
Crear y configurar un punto de enlace de la VPC para Amazon S3
-
En AWS Management Console, vaya a la página de la consola de Amazon VPC.
-
En la barra de navegación, elija Endpoints (Puntos de enlace).
-
En la página Endpoints (Puntos de enlace), elija Create Endpoint (Crear punto de enlace).
-
En la página Create Endpoint (Crear un punto de conexión), introduzca “s3” en el campo de búsqueda y pulse Intro para ver una lista de los puntos de conexión disponibles para Amazon S3 en la Región de AWS actual.
-
En la lista de puntos de enlace de Amazon S3 devuelta, seleccione el tipo Gateway.
-
A continuación, elija la VPC que contiene la instancia de EC2 su entorno.
-
Ahora elija la tabla de enrutamiento de la VPC. De esta forma, las subredes asociadas pueden acceder al punto de conexión. La EC2 instancia de su entorno se encuentra en una de estas subredes.
-
En la sección Policy (Política), haga clic en la opción Custom (Personalizada) y reemplace la política estándar por la siguiente.
{ "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/*" } ] }
Para el elemento
Resource
, reemplace{bucket_name}
por el nombre real del bucket que está disponible en su Región de AWS. Por ejemplo, si lo utiliza AWS Cloud9 en la región Europa (Irlanda), debe especificar lo siguiente"Resource": "arn:aws:s3:::static-eu-west-1-prod-static-hld3vzaf7c4h/content/dependencies/
:.En la siguiente tabla se muestran los nombres de los cubos Regiones de AWS donde AWS Cloud9 están disponibles.
Depósitos de Amazon S3 en regiones AWS Cloud9 Región de AWS Nombre del bucket Este de EE. UU. (Ohio)
static-us-east-2-prod-static-1c3sfcvf9hy4m
Este de EE. UU. (Norte de Virginia)
static-us-east-1-prod-static-mft1klnkc4hl
Oeste de EE. UU. (Oregón)
static-us-west-2-prod-static-p21mksqx9zlr
Oeste de EE. UU. (Norte de California)
static-us-west-1-prod-static-16d59zrrp01z0
Africa (Cape Town)
static-af-south-1-prod-static-v6v7i5ypdppv
Asia-Pacífico (Hong Kong)
static-ap-east-1-prod-static-171xhpfkrorh6
Asia-Pacífico (Bombay) static-ap-south-1-prod-static-ykocre202i9d
Asia-Pacífico (Osaka) static-ap-northeast-3-prod-static-ivmxqzrx2ioi
Asia-Pacífico (Seúl) static-ap-northeast-2-prod-static-1wxyctlhwiajm
Asia-Pacífico (Singapur) static-ap-southeast-1-prod-static-13ibpyrx4vk6d
Asia-Pacífico (Sídney)
static-ap-southeast-2-prod-static-1cjsl8bx27rfu
Asia-Pacífico (Tokio)
static-ap-northeast-1-prod-static-4fwvbdisquj8
Canadá (centro)
static-ca-central-1-prod-static-g80lpejy486c
Europa (Fráncfort)
static-eu-central-1-prod-static-14lbgls2vrkh
Europa (Irlanda)
static-eu-west-1-prod-static-hld3vzaf7c4h
Europa (Londres)
static-eu-west-2-prod-static-36lbg202837x
Europa (Milán)
static-eu-south-1-prod-static-1379tzkd3ni7d
Europa (París)
static-eu-west-3-prod-static-1rwpkf766ke58
Europa (Estocolmo)
static-eu-north-1-prod-static-1qzw982y7yu7e
Medio Oriente (Baréin)
static-me-south-1-prod-static-gmljex38qtqx
América del Sur (São Paulo)
static-sa-east-1-prod-static-1cl8k0y7opidt
Israel (Tel Aviv)
static-il-central-1-prod-static-k02vrnhcesue
-
Seleccione Crear punto de conexión.
Si ha proporcionado la información de configuración correcta, un mensaje muestra el ID del punto de conexión que se ha creado.
-
Para verificar que su IDE puede acceder al bucket de Amazon S3, inicie una sesión del terminal mediante las opciones Window (Ventana), New Terminal (Nuevo terminal) en la barra de menús. A continuación, ejecute el siguiente comando y reemplace
{bucket_name}
por el nombre real del bucket de su región.ping {bucket_name}.s3.{region}.amazonaws.com.
Por ejemplo, si creó un punto de conexión para un bucket de Amazon S3 en la región Este de EE. UU. (Norte de Virginia), ejecute el siguiente comando:
ping static-us-east-1-prod-static-mft1klnkc4hl.s3.us-east-1.amazonaws.com
Si el ping obtiene una respuesta, esto confirma que su IDE puede acceder al bucket y a sus dependencias.
Para obtener más información sobre esta función, consulte Endpoints for Amazon S3 en la AWS PrivateLinkguía.
Configuración de puntos de enlace de la VPC para conectividad privada
Cuando se lanza una instancia en una subred con la opción access using Systems Manager (Acceso a través de Systems Manager), su grupo de seguridad no tiene una regla de entrada que permita el tráfico de red entrante. Sin embargo, el grupo de seguridad tiene una regla de salida que permite el tráfico saliente de la instancia. Esto es necesario para descargar los paquetes y bibliotecas necesarios para mantener el AWS Cloud9 IDE actualizado.
Para evitar el tráfico saliente y entrante de la instancia, cree y configure los puntos de conexión de Amazon VPC para Systems Manager. Con un punto final de VPC de interfaz (punto final de interfaz), puede conectarse a los servicios impulsados por. AWS PrivateLink AWS PrivateLink es una tecnología que se puede utilizar para acceder de forma privada a Amazon EC2 y Systems Manager APIs mediante direcciones IP privadas. Para configurar los puntos de enlace de la VPC para que utilicen Systems Manager, siga las instrucciones proporcionadas en este Recursos del Centro de Conocimientos
aviso
Supongamos que configura un grupo de seguridad que no permite el tráfico de red entrante o saliente. Por lo tanto, la EC2 instancia que admite su AWS Cloud9 IDE no tiene acceso a Internet. Debe crear un punto de conexión de Amazon S3 para su VPC para permitir el acceso a las dependencias contenidas en un bucket de S3 de confianza. Además, es posible que algunas Servicios de AWS, por ejemplo AWS Lambda, no funcionen según lo previsto sin acceso a Internet.
Con AWS PrivateLink, hay cargos de procesamiento de datos por cada gigabyte procesado a través del punto final de la VPC. Esto es independiente del origen o el destino del tráfico. Para obtener más información, consulte Precios de AWS PrivateLink