View a markdown version of this page

Permissões do IAM necessárias para criar e usar CloudShell ambientes VPC - 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á.

Permissões do IAM necessárias para criar e usar CloudShell ambientes VPC

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

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

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateTags

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

Recomendamos incluir:

  • ec2:DeleteNetworkInterface

nota

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

Política do IAM que concede CloudShell acesso total, incluindo acesso à VPC

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCloudShellOperations", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "AllowDescribeVPC", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowInspectVPCConfigurationViaCloudShell", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "cloudshell.amazonaws.com" } } }, { "Sid": "AllowCreateTagWithCloudShellKeyViaCloudShell", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell", "aws:CalledVia": "cloudshell.amazonaws.com" } } }, { "Sid": "AllowCreateNetworkInterfaceWithSubnetsAndSGViaCloudShell", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "cloudshell.amazonaws.com" } } }, { "Sid": "AllowCreateNetworkInterfaceWithCloudShellTagViaCloudShell", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell", "aws:CalledVia": "cloudshell.amazonaws.com" } } }, { "Sid": "AllowCreateNetworkInterfacePermissionWithCloudShellTagViaCloudShell", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" }, "ForAnyValue:StringEquals": { "aws:CalledVia": "cloudshell.amazonaws.com" } } }, { "Sid": "AllowDeleteNetworkInterfaceWithCloudShellTagViaCloudShell", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" }, "ForAnyValue:StringEquals": { "aws:CalledVia": "cloudshell.amazonaws.com" } } } ] }

Usar chaves de condição do IAM para ambientes de VPC

Você pode usar chaves de CloudShell-specific condição para configurações de VPC para fornecer controles de permissão adicionais para seus ambientes de VPC. Também é possível especificar as sub-redes e os grupos de segurança que os usuários do ambiente de VPC podem e não podem usar.

CloudShell é compatível com as seguintes chaves de condição nas políticas do IAM:

  • CloudShell:VpcIds: permitir ou negar uma 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 política do IAM com essa restrição e desativar o acesso ao ambiente público existente, primeiro atualize a política do IAM com a restrição e, em seguida, garanta 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).

Políticas de exemplo com chaves de condição para configurações de VPC

Os exemplos a seguir demonstram como usar chaves de condição para configurações de VPC. 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 ambientes de VPC e neguem a criação de ambientes públicos

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

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

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

Para negar acesso de usuários a VPCs específicas, use StringEquals para verificar o valor da condição cloudshell:VpcIds. O seguinte exemplo nega aos usuários acesso à vpc-1 e à vpc-2:

Para negar acesso de usuários a VPCs específicas, use StringEquals para verificar o valor da condição cloudshell:SubnetIds. O seguinte exemplo nega aos usuários acesso à subnet-1 e à subnet-2:

Para negar acesso de usuários a VPCs específicas, use StringEquals para verificar o valor da condição cloudshell:SecurityGroupIds. O seguinte exemplo nega aos usuários acesso à sg-1 e à sg-2:

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

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

Para permitir que os usuários acessem VPCs específicas, use StringEquals para verificar o valor da condição cloudshell:VpcIds. O seguinte exemplo dá aos usuários permissão para acessar vpc-1 e vpc-2:

Para permitir que os usuários acessem VPCs específicas, use StringEquals para verificar o valor da condição cloudshell:SubnetIds. O seguinte exemplo dá aos usuários permissão para acessar subnet-1 e subnet-2:

JSON
{ "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 específicas, use StringEquals para verificar o valor da condição cloudshell:SecurityGroupIds. O seguinte exemplo dá aos usuários permissão para acessar sg-1 e sg-2:

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