Gerenciando AWS CloudShell o acesso e o uso com IAM políticas - AWS CloudShell

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á.

Gerenciando AWS CloudShell o acesso e o uso com IAM políticas

Com os recursos de gerenciamento de acesso que podem ser fornecidos por AWS Identity and Access Management (IAM), os administradores podem conceder permissões aos IAM usuários. Dessa forma, esses usuários podem acessar o AWS CloudShell e usar os atributos do ambiente. Os administradores também podem criar políticas que especifiquem em um nível granular quais ações esses usuários podem realizar com o ambiente shell.

A maneira mais rápida de um administrador conceder acesso aos usuários é por meio de uma política AWS gerenciada. Uma política AWS gerenciada é uma política independente criada e administrada pela AWS. A seguinte política AWS gerenciada para AWS CloudShell pode ser anexada às IAM identidades:

  • AWS CloudShellFullAccess: concede permissão para uso AWS CloudShell com acesso total a todos os recursos.

A AWS CloudShellFullAccesspolítica usa o caractere curinga (*) para dar à IAM identidade (usuário, função ou grupo) acesso total CloudShell e recursos. Para obter mais informações sobre essa política, consulte AWS CloudShellFullAccesso Guia do usuário da política AWS gerenciada.

nota

IAMidentidades com as seguintes políticas AWS gerenciadas também podem ser CloudShell lançadas. No entanto, essas políticas fornecem permissões abrangentes. Portanto, recomendamos que você conceda essas políticas somente se elas forem essenciais para a função profissional de um IAM usuário.

  • Administrador: fornece IAM aos usuários acesso total e permite que eles deleguem AWS permissões a todos os serviços e recursos do.

  • Usuário avançado do desenvolvedor: permite que IAM os usuários executem tarefas de desenvolvimento de aplicativos e criem e configurem recursos e serviços que suportem o desenvolvimento AWS consciente de aplicativos.

Para obter mais informações sobre como anexar políticas gerenciadas, consulte Adicionar permissões de IAM identidade (console) no Guia do IAM usuário.

Gerenciando ações permitidas no AWS CloudShell uso de políticas personalizadas

Para gerenciar as ações que um IAM usuário pode executar CloudShell, crie uma política personalizada que use a política CloudShellPolicy gerenciada como modelo. Como alternativa, edite uma política embutida que esteja incorporada na IAM identidade relevante (usuário, grupo ou função).

Por exemplo, você pode permitir que IAM os usuários acessem CloudShell, mas impedir que eles encaminhem as credenciais do CloudShell ambiente usadas para fazer login. AWS Management Console

Importante

Para iniciar a AWS CloudShell partir do AWS Management Console, um IAM usuário precisa de permissões para as seguintes ações:

  • CreateEnvironment

  • CreateSession

  • GetEnvironmentStatus

  • StartEnvironment

Se uma dessas ações não for explicitamente permitida por uma política anexada, um erro de IAM permissões será retornado quando você tentar CloudShell iniciá-la.

AWS CloudShell permissões
Nome Descrição da permissão concedida Necessário para o lançamento CloudShell?

cloudshell:CreateEnvironment

Cria um CloudShell ambiente, recupera o layout no início da CloudShell sessão e salva o layout atual do aplicativo web no back-end. Essa permissão só espera * o valor de Resource conforme descrito emExemplos de IAM políticas para CloudShell.

Sim

cloudshell:CreateSession

Conecta-se a um CloudShell ambiente a partir do AWS Management Console.

Sim

cloudshell:GetEnvironmentStatus

Leia o status de um CloudShell ambiente.

Sim

cloudshell:DeleteEnvironment

Exclui um CloudShell ambiente.

Não

cloudshell:GetFileDownloadUrls

Gera Amazon URLs S3 pré-assinado que é usado para baixar arquivos usando CloudShell CloudShell a interface web. Isso não está disponível para VPC ambientes.

Não

cloudshell:GetFileUploadUrls

Gera Amazon URLs S3 pré-assinado que é usado para fazer upload de arquivos usando CloudShell CloudShell a interface web. Isso não está disponível para VPC ambientes.

Não

cloudshell:DescribeEnvironments

Descreve os ambientes.

Não

cloudshell:PutCredentials

Encaminha as credenciais usadas para fazer login no. AWS Management Console CloudShell

Não

cloudshell:StartEnvironment

Inicia um CloudShell ambiente que está parado.

Sim

cloudshell:StopEnvironment

Interrompe um CloudShell ambiente em execução.

Não

Exemplos de IAM políticas para CloudShell

Os exemplos a seguir mostram como as políticas podem ser criadas para restringir quem pode acessar CloudShell. Os exemplos também mostram as ações que podem ser executadas no ambiente shell.

A política a seguir impõe uma negação total do acesso CloudShell e de seus recursos.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DenyCloudShell", "Effect": "Deny", "Action": [ "cloudshell:*" ], "Resource": "*" }] }

A política a seguir permite que IAM os usuários acessem CloudShell , mas impede que eles gerem pré-assinados URLs para upload e download de arquivos. Os usuários ainda podem transferir arquivos de e para o ambiente, usando clientes como wget, por exemplo.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyUploadDownload", "Effect": "Deny", "Action": [ "cloudshell:GetFileDownloadUrls", "cloudshell:GetFileUploadUrls" ], "Resource": "*" }] }

A política a seguir permite que IAM os usuários acessem CloudShell. No entanto, a política impede que as credenciais que você usou para fazer login sejam encaminhadas para o CloudShell ambiente. AWS Management Console IAMos usuários com essa política precisam configurar manualmente suas credenciais dentro CloudShell dela.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyCredentialForwarding", "Effect": "Deny", "Action": [ "cloudshell:PutCredentials" ], "Resource": "*" }] }

A política a seguir permite que IAM os usuários AWS CloudShell criem ambientes.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "CloudShellUser", "Effect": "Allow", "Action": [ "cloudshell:CreateEnvironment", "cloudshell:CreateSession", "cloudshell:GetEnvironmentStatus", "cloudshell:StartEnvironment" ], "Resource": "*" }] }

IAMPermissões necessárias para criar e usar CloudShell VPC ambientes

Para criar e usar CloudShell VPC ambientes, o IAM administrador deve habilitar o acesso a EC2 permissões VPC específicas da Amazon. Esta seção lista as EC2 permissões da Amazon necessárias para criar e usar VPC ambientes.

Para criar VPC ambientes, a IAM política atribuída à sua função deve incluir as seguintes EC2 permissões da Amazon:

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateTags

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

Recomendamos também incluir:

  • ec2:DeleteNetworkInterface

nota

Essa permissão não é obrigatória, mas é necessária CloudShell para limpar o ENI recurso (ENIscriado para CloudShell VPC ambientes marcados com ManagedByCloudShell chave) criado por ele. Se essa permissão não estiver habilitada, você deverá limpar manualmente o ENI recurso após cada uso do CloudShell VPC ambiente.

IAMpolítica que concede CloudShell acesso total, incluindo acesso a VPC

O exemplo a seguir mostra como habilitar permissões completas, incluindo acesso VPC a CloudShell:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudShellOperations", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "AllowDescribeVPC", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowCreateTagWithCloudShellKey", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfaceWithSubnetsAndSG", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowCreateNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfacePermissionWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } }, { "Sid": "AllowDeleteNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } } ] }

Usando chaves de IAM condição para VPC ambientes

Você pode usar chaves CloudShell de condição específicas para VPC configurações para fornecer controles de permissão adicionais para seus VPC ambientes. Você também pode especificar as sub-redes e os grupos de segurança que o VPC ambiente pode ou não usar.

CloudShell oferece suporte às seguintes chaves de condição nas IAM políticas:

  • CloudShell:VpcIds— Permitir ou negar um ou mais VPCs

  • CloudShell:SubnetIds— Permitir ou negar uma ou mais sub-redes

  • CloudShell:SecurityGroupIds— Permitir ou negar um ou mais grupos de segurança

nota

Se as permissões dos usuários com acesso a CloudShell ambientes públicos forem modificadas para adicionar restrições à cloudshell:createEnvironment ação, eles ainda poderão acessar o ambiente público existente. No entanto, se você quiser modificar uma IAM política com essa restrição e desativar seu acesso ao ambiente público existente, você deve primeiro atualizar a IAM política com a restrição e, em seguida, garantir que cada CloudShell usuário em sua conta exclua manualmente o ambiente público existente usando a interface de usuário da CloudShell web (AçõesExcluir CloudShell ambiente).

Exemplo de políticas com chaves de condição para VPC configurações

Os exemplos a seguir demonstram como usar chaves de condição para VPC configurações. Depois de criar uma instrução de política com as restrições desejadas, acrescente a instrução de política para o usuário ou a função de destino.

Garanta que os usuários criem somente VPC ambientes e neguem a criação de ambientes públicos

Para garantir que os usuários possam criar somente VPC ambientes, use a permissão de negação conforme mostrado no exemplo a seguir:

{ "Statement": [ { "Sid": "DenyCloudShellNonVpcEnvironments", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "Null": { "cloudshell:VpcIds": "true" } } } ] }

Negar aos usuários acesso a grupos específicosVPCs, sub-redes ou grupos de segurança

Para negar aos usuários acesso a VPCs informações específicas, use StringEquals para verificar o valor da cloudshell:VpcIds condição. O exemplo a seguir nega aos usuários o acesso a vpc-1 evpc-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }

Para negar aos usuários acesso a VPCs informações específicas, use StringEquals para verificar o valor da cloudshell:SubnetIds condição. O exemplo a seguir nega aos usuários o acesso a subnet-1 esubnet-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfSubnets", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:SubnetIds": [ "subnet-1", "subnet-2" ] } } } ] }

Para negar aos usuários acesso a VPCs informações específicas, use StringEquals para verificar o valor da cloudshell:SecurityGroupIds condição. O exemplo a seguir nega aos usuários o acesso a sg-1 esg-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfSecurityGroups", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }

Permita que os usuários criem ambientes com VPC configurações específicas

Para permitir que os usuários acessem VPCs dados específicos, use StringEquals para verificar o valor da cloudshell:VpcIds condição. O exemplo a seguir permite que os usuários acessem vpc-1 evpc-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }

Para permitir que os usuários acessem VPCs dados específicos, use StringEquals para verificar o valor da cloudshell:SubnetIds condição. O exemplo a seguir permite que os usuários acessem subnet-1 esubnet-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSubnets", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SubnetIds": [ "subnet-1", "subnet-2" ] } } } ] }

Para permitir que os usuários acessem VPCs dados específicos, use StringEquals para verificar o valor da cloudshell:SecurityGroupIds condição. O exemplo a seguir permite que os usuários acessem sg-1 esg-2:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSecurityGroup", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }

Permissões para acessar Serviços da AWS

CloudShell usa as IAM credenciais que você usou para entrar no. AWS Management Console

nota

Para usar IAM as credenciais que você usou para entrar no AWS Management Console, você deve ter cloudshell:PutCredentials permissão.

Esse recurso de pré-autenticação CloudShell facilita o uso AWS CLI. No entanto, um IAM usuário ainda precisa de permissões explícitas para Serviços da AWS as chamadas na linha de comando.

Por exemplo, suponha que IAM os usuários precisem criar buckets do Amazon S3 e fazer upload de arquivos como objetos para eles. Você pode criar uma política que permita explicitamente essas ações. O IAM console fornece um editor visual interativo que orienta o processo de criação de um documento JSON de política formatado. Depois que a política for criada, você poderá anexá-la à IAM identidade relevante (usuário, grupo ou função).

Para obter mais informações sobre como anexar políticas gerenciadas, consulte Adicionar permissões de IAM identidade (console) no Guia do IAM usuário.