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á.
Acessar instâncias do EC2 sem entrada com o AWS Systems Manager
Uma “instância do EC2 sem entrada” criada para um ambiente EC2 habilita o AWS Cloud9 para se conectar à instância do Amazon EC2 sem a necessidade de abrir portas de entrada nessa instância. Você pode selecionar a opção sem entrada ao criar um ambiente EC2 usando o console, a interface da linha de comando ou uma pilha do AWS CloudFormation.
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 habilita o AWS Cloud9 para se conectar via SSH à sua instância. Se você usa o Gerenciador de Sessões do AWS Systems Manager, pode acessar sua instância do Amazon EC2 via 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 Gerenciar perfis da instância para o Systems Manager com a 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.
-
Os usuários do AWS Cloud9 podem acessar a instância gerenciada pelo Gerenciador de Sessões. 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 manipule a conexão segura entre o AWS Cloud9 e a instância do 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 através de um Perfil de instância do (IAM) do AWS Identity and Access Management. (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).
Ao criar a instância do EC2 sem ingresso usando o console do AWS Cloud9, 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 a AWS CLI, você deverá definir explicitamente a função de serviço e o perfil da instância necessários. Para obter mais informações, consulte Gerenciar perfis da instância para o Systems Manager com a AWS CLI.
Importante
Se você estiver criando um ambiente AWS Cloud9 e usando o Amazon EC2 Systems Manager com as políticas AWSCloud9Administrator
ou AWSCloud9User
anexas, você também deverá anexar uma política personalizada que tenha permissões específicas do IAM, consulte Política de IAM personalizada para criação de ambiente SSM. Isso ocorre devido a um problema de permissões com as políticas AWSCloud9Administrator
e AWSCloud9User
.
Para proteção de segurança adicional, o perfil vinculado ao serviço do AWS Cloud9, AWSServiceRoleforAWSCloud9
, apresenta uma restrição PassRole
na 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. Neste caso, a permissão PassRole
garante que o AWS Cloud9 possa passar apenas a função AWSCloud9SSMAccessRole
(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.
Gerenciar perfis da instância para o Systems Manager com a 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
AWSCloud9SSMAccessRole
e oAWSCloud9SSMInstanceProfile
forem 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 o seguinte comando da AWS CLI 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 ambiente do AWS Cloud9 que está conectado a uma instância do EC2 por meio do Systems Manager, um 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 específica do AWS Cloud9 (recomendada) ou editando uma política do IAM e adicionando as permissões necessárias.
Método | Descrição |
---|---|
Use a política gerenciada específica do AWS Cloud9 |
Recomendamos usar AWS políticas 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 uso do AWS Cloud9 e podem ser facilmente anexados 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 ambiente AWS Cloud9 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 condição ssm:resourceTag
especifica que uma sessão do Session Manager pode ser iniciada para qualquer instância (Resource: arn:aws:ec2:*:*:instance/*
) na condição de que a instância seja um ambiente de desenvolvimento EC2 do AWS Cloud9 (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/*" ] }
Usar o AWS CloudFormation para criar ambientes EC2 sem entrada
Ao usar um modelo do AWS 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
AWSCloud9SSMAccessRole
e um perfil da instânciaAWSCloud9SSMInstanceProfile
. Para obter mais informações, consulte Criar função de serviço e um perfil da instância com um modelo do AWS CloudFormation. -
Atualize a política para a entidade do IAM chamando AWS 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.
Criar função de serviço e um perfil da instância com um modelo do AWS CloudFormation
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ê já criou AWSCloud9SSMAccessRole
e AWSCloud9SSMInstanceProfile
criando um with the console do ambiente EC2 sem entrada ou executando comandos da AWS CLI, o perfil de serviço e o perfil de instância já estarão disponíveis para uso.
nota
Suponha que você tente criar uma pilha do AWS CloudFormation para um ambiente do EC2 sem entrada, mas não tenha criado antes o perfil 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:
O perfil da instância AWSCloud9SSMInstanceProfile não existe na conta.
Ao criar um ambiente EC2 sem entrada pela primeira vez usando o AWS 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 ação AssumeRole
retorna credenciais de segurança que fornecem acesso ao ambiente do AWS Cloud9 e à respectiva 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 AWS 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 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/*" ] }
Configurar endpoints de VPC para o Amazon S3 para baixar as dependências
Se sua instância do EC2 do ambiente do AWS Cloud9 não tiver acesso à Internet, crie um endpoint da VPC para um bucket do Amazon S3 especificado. Esse bucket contém as dependências necessárias para manter o IDE atualizado.
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 endpoints da VPC usando o AWS Management Console, a AWS CLI ou a API da 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
-
No AWS Management Console acesse a página do console do 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.
{ "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 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), especifique o seguinte:"Resource": "arn:aws:s3:::static-eu-west-1-prod-static-hld3vzaf7c4h/content/dependencies/
.A tabela a seguir lista nomes de bucket para as Regiões da AWS em que o AWS Cloud9 está disponível.
Buckets do Amazon S3 nas regiões da AWS Cloud9Região da AWS Nome do bucket Leste dos EUA (Ohio)
static-us-east-2-prod-static-1c3sfcvf9hy4m
Leste dos EUA (N. da Virgínia)
static-us-east-1-prod-static-mft1klnkc4hl
Oeste dos EUA (Oregon)
static-us-west-2-prod-static-p21mksqx9zlr
Oeste dos EUA (N. da Califórnia)
static-us-west-1-prod-static-16d59zrrp01z0
África (Cidade do Cabo)
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
Asia Pacific (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-4fwvbdisquj8
Canadá (Central)
static-ca-central-1-prod-static-g80lpejy486c
Europa (Frankfurt)
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ão)
static-eu-south-1-prod-static-1379tzkd3ni7d
Europa (Paris)
static-eu-west-3-prod-static-1rwpkf766ke58
Europa (Estocolmo)
static-eu-north-1-prod-static-1qzw982y7yu7e
Oriente Médio (Bahrein)
static-me-south-1-prod-static-gmljex38qtqx
América do Sul (São Paulo)
static-sa-east-1-prod-static-1cl8k0y7opidt
Israel (Tel Aviv)
static-il-central-1-prod-static-k02vrnhcesue
-
Escolha Create Endpoint (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.
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
Se 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 do Amazon S3 no Manual do AWS PrivateLink.
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 os pacotes e bibliotecas necessários para manter o IDE do AWS Cloud9 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 um endpoint da VPC de interface (endpoint de interface), você pode se conectar a serviços com a tecnologia AWS PrivateLink. AWS PrivateLink é uma tecnologia que permite acessar de forma privada APIs do Amazon EC2 e do Systems 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. A instância do EC2 que oferece suporte ao IDE do AWS Cloud9 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 o AWS Lambda, podem não funcionar como previsto sem acesso à Internet.
Com o AWS PrivateLink, há cobranças de processamento de dados para cada gigabyte processado por meio do endpoint da VPC. Isso ocorre independentemente da origem ou do destino do tráfego. Para obter mais informações, consulte Preço do AWS PrivateLink