AWS Cloud9 não está mais disponível para novos clientes. Os clientes atuais do AWS Cloud9 podem continuar usando o serviço normalmente. Saiba mais
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Acessando instâncias EC2 sem entrada com AWS Systems Manager
Uma “instância EC2 sem entrada” criada para um ambiente EC2 permite conectar-se AWS Cloud9 à sua instância do Amazon EC2 sem a necessidade de abrir nenhuma porta de entrada nessa instância. Você pode selecionar a opção sem entrada ao criar um ambiente do EC2 usando o console, a interface de linha de comandos ou uma pilha do CloudFormation. Para obter mais informações sobre como criar um ambiente usando o console ou a interface de linha de comandos, consulte Etapa 1: Criar um ambiente.
Importante
Não há cobranças adicionais pelo uso do Systems Manager Session Manager para gerenciar conexões com a instância do EC2.
Ao selecionar um tipo de ambiente na página Create environment (Criar ambiente) do console, você pode selecionar uma nova instância do EC2 que exija conectividade de entrada ou uma nova instância do EC2 sem entrada que não exija o seguinte:
-
New EC2 instance (Nova instância do EC2): com essa configuração, o grupo de segurança da instância tem uma regra para permitir o tráfego da rede de entrada. O tráfego de rede de entrada é restrito aos Endereços IP aprovados para conexões do AWS Cloud9. Uma porta de entrada aberta permite AWS Cloud9 a conexão via SSH à sua instância. Se você usa o AWS Systems Manager Session Manager, você pode acessar sua instância do Amazon EC2 por meio de SSM sem abrir portas de entrada (sem entrada). Esse método é aplicável somente para novas instâncias do Amazon EC2. Para obter mais informações, consulte Benefícios do uso do Systems Manager para ambientes EC2.
-
Existing compute (Computação existente): com essa configuração, é acessada uma instância existente do Amazon EC2 que exige detalhes de login SSH para os quais a instância deve ter uma regra de grupo de segurança de entrada. Se você usar essa opção, o perfil de serviço será criado automaticamente. Você pode ver o nome do perfil de serviço em uma nota na parte inferior da tela de configuração.
Se estiver criando um ambiente usando o comando da AWS CLI, você poderá configurar uma instância do EC2 sem entrada definindo a opção --connection-type CONNECT_SSM ao chamar o comando create-environment-ec2. Para obter mais informações sobre como criar a função de serviço e o perfil da instância necessários, consulte Gerenciando perfis de instância para Systems Manager com o AWS CLI.
Depois de concluir a criação de um ambiente que usa uma instância do EC2 sem entrada, confirme o seguinte:
-
O Gerenciador de Sessões do Systems Manager tem permissões para executar ações na instância do EC2 em seu nome. Para obter mais informações, consulte Gerenciar permissões do Systems Manager.
-
AWS Cloud9 os usuários podem acessar a instância gerenciada pelo Session Manager. Para obter mais informações, consulte Conceder acesso dos usuários à instância gerenciada pelo Session Manager..
Benefícios do uso do Systems Manager para ambientes EC2
Permitir que o Session Manager gerencie a conexão segura entre AWS Cloud9 e sua instância EC2 oferece dois benefícios principais:
-
Não há necessidade de abrir portas de entrada para a instância
-
Opção para iniciar a instância em uma sub-rede pública ou privada
Gerenciar permissões do Systems Manager
Por padrão, o Systems Manager não tem permissão para executar ações nas instâncias.do EC2. O acesso é fornecido por meio de um perfil de instância AWS Identity and Access Management (IAM). (Um perfil da instância é um contêiner que transmite as informações da função do IAM para uma instância do EC2 na inicialização).
Quando você cria a instância EC2 sem entrada usando o AWS Cloud9 console, tanto a função de serviço (AWSCloud9SSMAccessRole) quanto o perfil da instância do IAM (AWSCloud9SSMInstanceProfile) são criados automaticamente para você. (Você pode visualizar AWSCloud9SSMAccessRole no console de gerenciamento do IAM. Os perfis de instância não são exibidos no console do IAM).
Importante
Se você criar um ambiente EC2 sem entrada pela primeira vez com AWS CLI, deverá definir explicitamente a função de serviço e o perfil de instância necessários. Para obter mais informações, consulte Gerenciando perfis de instância para Systems Manager com o AWS CLI.
Importante
Se você estiver criando um AWS Cloud9 ambiente e usando o Amazon EC2 Systems Manager com as políticas AWSCloud9User ou anexadas, você também deve anexar uma política personalizada que tenha permissões específicas do IAM, Política de IAM personalizada para criação de ambiente SSM consulte. AWSCloud9Administrator Isso ocorre devido a um problema de permissões com as políticas AWSCloud9Administrator e AWSCloud9User.
Para proteção adicional de segurança, a função AWS Cloud9 vinculada ao serviço,AWSServiceRoleforAWSCloud9, apresenta uma PassRole restrição em sua política. AWSCloud9ServiceRolePolicy Quando você aprova uma função do IAM para um serviço, ela permite que esse serviço assuma a função e realize ações em seu nome. Nesse caso, a PassRole permissão garante que AWS Cloud9 você possa passar somente a AWSCloud9SSMAccessRole função (e sua permissão) para uma instância do EC2. Isso restringe as ações que podem ser executadas na instância do EC2 a somente àquelas exigidas pelo AWS Cloud9.
nota
Se você não precisar mais usar o Systems Manager para acessar uma instância, poderá excluir a função de serviço AWSCloud9SSMAccessRole. Para obter mais informações sobre como excluir uma função, consulte Excluir funções ou perfis de instância no Manual do usuário do IAM.
Gerenciando perfis de instância para Systems Manager com o AWS CLI
Você também pode criar um ambiente EC2 sem ingresso com a AWS CLI. Quando você chamar create-environment-ec2, defina a opção do --connection-type para CONNECT_SSM.
Se você usar essa opção, a função de serviço do AWSCloud9SSMAccessRole e o AWSCloud9SSMInstanceProfile não serão criados automaticamente. Para criar o perfil de serviço necessário e o perfil de instância, realize um dos seguintes procedimentos:
-
Crie um ambiente EC2 usando o console, depois que a função de serviço
AWSCloud9SSMAccessRolee oAWSCloud9SSMInstanceProfileforem criados automaticamente. Depois que forem criados, a função de serviço e o perfil da instância estarão disponíveis para quaisquer ambientes EC2 adicionais criados usando a AWS CLI. -
Execute os AWS CLI comandos a seguir para criar a função de serviço e o perfil da instância.
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
Conceder acesso dos usuários à instância gerenciada pelo Session Manager.
Para abrir um AWS Cloud9 ambiente conectado a uma instância do EC2 por meio do Systems Manager, o usuário deve ter permissão para a operação da API,StartSession. Essa operação inicia uma conexão com a instância do EC2 gerenciada para uma sessão do Session Manager. Você pode conceder acesso aos usuários usando uma política gerenciada AWS Cloud9 específica (recomendada) ou editando uma política do IAM e adicionando as permissões necessárias.
| Método | Description |
|---|---|
|
Política AWS Cloud9 gerenciada específica de uso |
Recomendamos o uso de políticas AWS gerenciadas para permitir que os usuários acessem instâncias do EC2 gerenciadas pelo Systems Manager. As políticas gerenciadas fornecem um conjunto de permissões para casos de AWS Cloud9 uso padrão e podem ser facilmente anexadas a uma entidade do IAM. Todas as políticas gerenciadas também incluem as permissões para executar a operação da API
ImportanteSe você estiver criando um AWS Cloud9 ambiente e usando o Amazon EC2 Systems Manager com as políticas Para obter mais informações, consulte AWS políticas gerenciadas para AWS Cloud9. |
|
Edite uma política do IAM e adicione declarações de política obrigatórias |
Para editar uma política existente, você pode adicionar permissões para a API Ao editar a política, adicione o policy statement (veja abaixo) que permite que a operação da API do |
Você pode usar as permissões a seguir para executar a operação de API StartSession. A chave de ssm:resourceTag condição especifica que uma sessão do Session Manager pode ser iniciada para qualquer instância (Resource: arn:aws:ec2:*:*:instance/*) com a condição de que a instância seja um ambiente de desenvolvimento AWS Cloud9 EC2 ()aws:cloud9:environment.
nota
As seguintes políticas gerenciadas também incluem estas declarações da política: AWSCloud9Administrator, AWSCloud9User, e 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/*" ] }
Usando CloudFormation para criar ambientes EC2 sem entrada
Ao usar um modelo do CloudFormation para definir um ambiente de desenvolvimento sem entrada do Amazon EC2, faça o seguinte antes de criar a pilha:
-
Crie uma função de serviço
AWSCloud9SSMAccessRolee um perfil da instânciaAWSCloud9SSMInstanceProfile. Para obter mais informações, consulte Criação de função de serviço e perfil de instância com um CloudFormation modelo. -
Atualize a política para a chamada da entidade do IAM CloudFormation. Assim, a entidade pode iniciar uma sessão do Gerenciador de Sessões que se conecta à instância do EC2. Para obter mais informações, consulte Adicionar permissões do Systems Manager a uma política do IAM.
Criação de função de serviço e perfil de instância com um CloudFormation modelo
Você precisa criar a função de serviço AWSCloud9SSMAccessRole e o perfil da instância AWSCloud9SSMInstanceProfile para permitir que o Systems Manager gerencie a instância do EC2 que apoia seu ambiente de desenvolvimento.
Se você criou anteriormente AWSCloud9SSMAccessRole e AWSCloud9SSMInstanceProfile criou um ambiente EC2 sem entrada with the console ou executando AWS CLI comandos, a função de serviço e o perfil da instância já estão disponíveis para uso.
nota
Suponha que você tente criar uma CloudFormation pilha para um ambiente EC2 sem entrada, mas não tenha criado primeiro a função de serviço e o perfil de instância necessários. A pilha não será criada e a seguinte mensagem de erro será exibida:
Perfil da instância O AWSCloud9 SSMInstance perfil não existe na conta.
Ao criar um ambiente EC2 sem entrada pela primeira vez usando CloudFormation, você pode definir o AWSCloud9SSMAccessRole e AWSCloud9SSMInstanceProfile como recursos do IAM no modelo.
Este trecho de um modelo de exemplo mostra como definir esses recursos. A AssumeRole ação retorna credenciais de segurança que fornecem acesso ao AWS Cloud9 ambiente e à sua instância do 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
Adicionar permissões do Systems Manager a uma política do IAM
Depois de definir um perfil de serviço e um perfil de instância no modelo do CloudFormation, verifique se a entidade do IAM que está criando a pilha tem permissão para iniciar uma sessão do Gerenciador de Sessões. Uma sessão é uma conexão estabelecida com a instância do EC2 usando o Gerenciador de Sessões.
nota
Se você não adicionar permissões para iniciar uma sessão do Session Manager antes de criar uma pilha para um ambiente EC2 sem entrada, um erro AccessDeniedException será retornado.
Adicione as seguintes permissões à política para a entidade do IAM que chama o 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/*" ] }
Configurar endpoints de VPC para o Amazon S3 para baixar as dependências
Se a instância EC2 do seu AWS Cloud9 ambiente não tiver acesso à Internet, crie um VPC endpoint para um bucket específico do Amazon S3. Esse bucket contém as dependências necessárias para manter seu IDE up-to-date.
A configuração de um endpoint da VPC para o Amazon S3 também requer a personalização da política de acesso. A política de acesso deve permitir o acesso somente ao bucket do S3 confiável que contém as dependências a serem baixadas.
nota
Você pode criar e configurar VPC endpoints usando a API Console de gerenciamento da AWS,, AWS CLI ou Amazon VPC. O procedimento a seguir mostra como criar um endpoint da VPC usando a interface do console.
Crie e configure um endpoint da VPC para o Amazon S3
-
Em Console de gerenciamento da AWS, acesse a página do console da Amazon VPC.
-
Na barra de navegação, selecione Endpoints.
-
No painel de navegação, escolha Endpoints, Create Endpoint (Criar endpoint).
-
Na página Create Endpoint (Criar endpoint), digite “s3” no campo de pesquisa e pressione Return para listar os endpoints disponíveis para o Amazon S3 na Região da AWS:
-
Na lista de endpoints do Amazon S3 retornados, selecione o tipo Gateway.
-
Em seguida, escolha a VPC que contém a instância do EC2 do ambiente.
-
Agora escolha a tabela de rotas da VPC. Dessa forma, as sub-redes associadas poderão acessar o endpoint. A instância do EC2 do seu ambiente está em uma dessas sub-redes.
-
Na seção Policy (Política), selecione a opção Custom (Personalizada) e substitua a política padrão pela seguinte.
Para o elemento
Resource, substitua{bucket_name}pelo nome real do bucket que estiver disponível na sua Região da AWS. Por exemplo, se você estiver usando AWS Cloud9 na região Europa (Irlanda), você especifica o seguinte"Resource": "arn:aws:s3:::static-eu-west-1-prod-static-hld3vzaf7c4h/content/dependencies/:.A tabela a seguir lista os nomes dos buckets para o Regiões da AWS where AWS Cloud9 is available.
Buckets do Amazon S3 em regiões AWS Cloud9 Região da AWS Nome do bucket Leste dos EUA (Ohio)
static-us-east-2-prod-static-1c3sfcvf9hy4mLeste dos EUA (N. da Virgínia)
static-us-east-1-prod-static-mft1klnkc4hlOeste dos EUA (Oregon)
static-us-west-2-prod-static-p21mksqx9zlrOeste dos EUA (N. da Califórnia)
static-us-west-1-prod-static-16d59zrrp01z0Africa (Cape Town)
static-af-south-1-prod-static-v6v7i5ypdppvÁsia-Pacífico (Hong Kong)
static-ap-east-1-prod-static-171xhpfkrorh6Ásia-Pacífico (Mumbai) static-ap-south-1-prod-static-ykocre202i9dÁsia-Pacífico (Osaka) static-ap-northeast-3-prod-static-ivmxqzrx2ioiÁsia-Pacífico (Seul) static-ap-northeast-2-prod-static-1wxyctlhwiajmÁsia-Pacífico (Singapura) static-ap-southeast-1-prod-static-13ibpyrx4vk6dÁsia-Pacífico (Sydney)
static-ap-southeast-2-prod-static-1cjsl8bx27rfuÁsia-Pacífico (Tóquio)
static-ap-northeast-1-prod-static-4fwvbdisquj8Canadá (Central)
static-ca-central-1-prod-static-g80lpejy486cEuropa (Frankfurt)
static-eu-central-1-prod-static-14lbgls2vrkhEuropa (Irlanda)
static-eu-west-1-prod-static-hld3vzaf7c4hEuropa (Londres)
static-eu-west-2-prod-static-36lbg202837xEuropa (Milão)
static-eu-south-1-prod-static-1379tzkd3ni7dEuropa (Paris)
static-eu-west-3-prod-static-1rwpkf766ke58Europa (Estocolmo)
static-eu-north-1-prod-static-1qzw982y7yu7eOriente Médio (Bahrein)
static-me-south-1-prod-static-gmljex38qtqxSouth America (São Paulo)
static-sa-east-1-prod-static-1cl8k0y7opidtIsrael (Tel Aviv)
static-il-central-1-prod-static-k02vrnhcesue -
Escolha Criar endpoint.
Se você forneceu as informações de configuração corretas, uma mensagem exibirá o ID do endpoint que foi criado.
-
Para verificar se o IDE pode acessar o bucket do Amazon S3, inicie uma sessão de terminal escolhendo Window (Janela), New Terminal (Novo terminal), na barra de menus. Depois execute o seguinte comando, substituindo
{bucket_name}pelo nome do bucket para a sua região.ping {bucket_name}.s3.{region}.amazonaws.com.rproxy.govskope.us.Por exemplo, se você criou um endpoint para um bucket do S3 na região Leste dos EUA (N. da Virgínia), execute o seguinte comando.
ping static-us-east-1-prod-static-mft1klnkc4hl---s3---us-east-1.amazonaws.com.rproxy.govskope.usSe o ping receber uma resposta, isso confirma que o IDE pode acessar o bucket e suas dependências.
Para obter mais informações sobre esse recurso, consulte Endpoints para Amazon S3 no AWS PrivateLink Guia.
Configurar endpoints da VPC para conectividade privada
Quando você iniciar uma instância em uma sub-rede com a opção access using Systems Manager (acessar usando o Systems Manager), seu grupo de segurança não terá uma regra de entrada para permitir o tráfego de rede de entrada. No entanto, o grupo de segurança tem uma regra de saída que permite o tráfego de saída da instância. Isso é necessário para baixar pacotes e bibliotecas necessários para manter o AWS Cloud9 IDE atualizado.
Para impedir o tráfego de saída e de entrada para a instância, crie e configure os endpoints da Amazon VPC para o Systems Manager. Com uma interface VPC endpoint (endpoint de interface), você pode se conectar a serviços fornecidos por. AWS PrivateLink AWS PrivateLink é uma tecnologia que pode ser usada para acessar de forma privada o Amazon EC2 e o Systems APIs Manager usando endereços IP privados. Para configurar endpoints da VPC para usar o Systems Manager, siga as instruções fornecidas por este Knowledge Center resource
Atenção
Suponha que você configure um grupo de segurança que não permite tráfego de rede de entrada ou saída. Então, a instância do EC2 que suporta seu AWS Cloud9 IDE não tem acesso à Internet. É necessário criar um endpoint do Amazon S3 para a VPC a fim de permitir acesso às dependências contidas em um bucket do S3 confiável. Além disso, alguns Serviços da AWS, como AWS Lambda, podem não funcionar conforme o esperado sem acesso à Internet.
Com AWS PrivateLink, há cobranças de processamento de dados para cada gigabyte processado por meio do VPC endpoint. Isso ocorre independentemente da origem ou do destino do tráfego. Para obter mais informações, consulte Preços do AWS PrivateLink