Administrar el AWS CloudShell acceso y el uso con políticas IAM - AWS CloudShell

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.

Administrar el AWS CloudShell acceso y el uso con políticas IAM

Con los recursos de administración de acceso que pueden proporcionar AWS Identity and Access Management, los administradores pueden conceder permisos a IAM los usuarios. De esta forma, estos usuarios pueden acceder a las funciones del entorno AWS CloudShell y utilizarlas. Los administradores también pueden crear políticas que especifiquen de forma pormenorizada qué acciones pueden realizar esos usuarios en el entorno del intérprete de comandos.

La forma más rápida para que un administrador conceda acceso a los usuarios es mediante una política AWS gestionada. Una política AWS administrada es una política independiente creada y administrada por. AWS La siguiente política AWS administrada para se AWS CloudShell puede adjuntar a IAM las identidades:

  • AWS CloudShellFullAccess: Concede permiso de uso AWS CloudShell con acceso completo a todas las funciones.

La AWS CloudShellFullAccesspolítica utiliza el carácter comodín (*) para dar a la IAM identidad (usuario, rol o grupo) acceso total a las funciones CloudShell y a las funciones. Para obtener más información sobre esta política, consulte AWS CloudShellFullAccessla Guía del usuario de políticas AWS administradas.

nota

IAMTambién se pueden lanzar identidades con las siguientes políticas AWS administradas CloudShell. Sin embargo, estas políticas ofrecen amplios permisos. Por lo tanto, te recomendamos que solo concedas estas políticas si son esenciales para el puesto de trabajo de un IAM usuario.

  • Administrador: proporciona a IAM los usuarios acceso total y les permite delegar permisos en todos los servicios y recursos incluidos AWS.

  • Desarrollador y usuario avanzado: permite a IAM los usuarios realizar tareas de desarrollo de aplicaciones y crear y configurar recursos y servicios que respalden AWS el desarrollo de aplicaciones inteligentes.

Para obtener más información sobre cómo adjuntar políticas administradas, consulte Añadir permisos de IAM identidad (consola) en la Guía del IAM usuario.

Administrar las acciones permitidas mediante el AWS CloudShell uso de políticas personalizadas

Para administrar las acciones con las que un IAM usuario puede realizar CloudShell, cree una política personalizada que utilice la política CloudShellPolicy administrada como plantilla. Como alternativa, edite una política en línea que esté integrada en la IAM identidad correspondiente (usuario, grupo o rol).

Por ejemplo, puedes permitir el acceso de IAM los usuarios CloudShell, pero evitar que reenvíen las credenciales del CloudShell entorno que se utilizan para iniciar sesión. AWS Management Console

importante

Para iniciar AWS CloudShell desde AWS Management Console, el IAM usuario necesita permisos para realizar las siguientes acciones:

  • CreateEnvironment

  • CreateSession

  • GetEnvironmentStatus

  • StartEnvironment

Si una de estas acciones no está permitida de forma explícita en una política adjunta, se mostrará un error de IAM permisos al intentar iniciarla CloudShell.

AWS CloudShell permisos
Nombre Descripción del permiso concedido ¿Necesario para el lanzamiento CloudShell?

cloudshell:CreateEnvironment

Crea un CloudShell entorno, recupera el diseño al inicio de la CloudShell sesión y guarda el diseño actual de la aplicación web en el servidor. Este permiso solo es * el valor Resource indicado en. Ejemplos de IAM políticas para CloudShell

cloudshell:CreateSession

Se conecta a un CloudShell entorno desde AWS Management Console.

cloudshell:GetEnvironmentStatus

Lea el estado de un CloudShell entorno.

cloudshell:DeleteEnvironment

Elimina un CloudShell entorno.

No

cloudshell:GetFileDownloadUrls

Genera Amazon S3 prefirmado URLs que se utiliza para descargar archivos CloudShell mediante la interfaz CloudShell web. Esto no está disponible para VPC entornos.

No

cloudshell:GetFileUploadUrls

Genera Amazon S3 prefirmado URLs que se utiliza para cargar archivos CloudShell mediante la interfaz CloudShell web. Esto no está disponible para VPC entornos.

No

cloudshell:DescribeEnvironments

Describe los entornos.

No

cloudshell:PutCredentials

Reenvía las credenciales utilizadas para iniciar sesión en el AWS Management Console . CloudShell

No

cloudshell:StartEnvironment

Inicia un CloudShell entorno que está detenido.

cloudshell:StopEnvironment

Detiene un CloudShell entorno que se está ejecutando.

No

Ejemplos de IAM políticas para CloudShell

Los siguientes ejemplos muestran cómo se pueden crear políticas para restringir quién puede acceder CloudShell. Los ejemplos también muestran las acciones que se pueden realizar en el entorno del intérprete de comandos.

La siguiente política impone una denegación total del acceso a sus funciones CloudShell y a sus funciones.

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

La siguiente política permite a IAM los usuarios acceder CloudShell , pero les impide generar archivos prefirmados URLs para cargar y descargar archivos. Los usuarios pueden seguir transfiriendo archivos hacia y desde el entorno, utilizando clientes como, por ejemplo, wget.

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

La siguiente política permite a IAM los usuarios acceder CloudShell. Sin embargo, la política impide que las credenciales que utilizó para iniciar sesión AWS Management Console se reenvíen al CloudShell entorno. IAMlos usuarios con esta política deben configurar manualmente sus credenciales en ella CloudShell.

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

La siguiente política permite a IAM los usuarios crear AWS CloudShell entornos.

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

IAMPermisos necesarios para crear y usar CloudShell VPC entornos

Para crear y usar CloudShell VPC entornos, el IAM administrador debe habilitar el acceso a EC2 permisos VPC específicos de Amazon. En esta sección se enumeran los EC2 permisos de Amazon necesarios para crear y usar VPC entornos.

Para crear VPC entornos, la IAM política asignada a su función debe incluir los siguientes EC2 permisos de Amazon:

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateTags

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

Recomendamos incluir también:

  • ec2:DeleteNetworkInterface

nota

Este permiso no es obligatorio, pero es necesario CloudShell para limpiar el ENI recurso (ENIscreado para CloudShell VPC entornos que se etiquetan con una ManagedByCloudShell clave) creado por él. Si este permiso no está habilitado, debe limpiar el ENI recurso manualmente después de cada uso del CloudShell VPC entorno.

IAMpolítica que otorga CloudShell acceso completo, incluido el acceso a VPC

En el siguiente ejemplo, se muestra cómo habilitar todos los permisos, incluido el VPC acceso 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": "" } } } ] }

Uso de claves de IAM condición para VPC entornos

Puede usar claves de condición CloudShell específicas en la VPC configuración a fin de proporcionar controles de permisos adicionales para sus VPC entornos. También puede especificar las subredes y los grupos de seguridad que el VPC entorno puede y no puede usar.

CloudShell admite las siguientes claves de condición en las IAM políticas:

  • CloudShell:VpcIds— Permitir o denegar una o más VPCs

  • CloudShell:SubnetIds— Permitir o denegar una o más subredes

  • CloudShell:SecurityGroupIds— Permitir o denegar uno o más grupos de seguridad

nota

Si los permisos de los usuarios con acceso a CloudShell entornos públicos se modifican para añadir restricciones a la cloudshell:createEnvironment acción, podrán seguir accediendo a su entorno público actual. Sin embargo, si desea modificar una IAM política con esta restricción e inhabilitar su acceso al entorno público existente, primero debe actualizar la IAM política con la restricción y, a continuación, asegurarse de que todos los CloudShell usuarios de su cuenta eliminen manualmente el entorno público existente mediante la interfaz de usuario CloudShell web (AccionesEliminar CloudShell entorno).

Ejemplos de políticas con claves de condición para la configuración VPC

Los siguientes ejemplos muestran cómo utilizar las claves de condición para la VPC configuración. Después de crear una instrucción de política con las restricciones deseadas, agregue la instrucción de política para el usuario o rol de destino.

Asegúrese de que los usuarios creen únicamente VPC entornos y denieguen la creación de entornos públicos

Para garantizar que los usuarios solo puedan crear VPC entornos, utilice el permiso de denegación como se muestra en el siguiente ejemplo:

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

Denegue a los usuarios el acceso a subredes o grupos de seguridad específicos VPCs

Para denegar a los usuarios el acceso a un VPCs contenido específico, utilice esta opción StringEquals para comprobar el valor de la cloudshell:VpcIds condición. El siguiente ejemplo deniega a los usuarios el acceso a vpc-1 yvpc-2:

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

Para denegar a los usuarios el acceso a determinadas condicionesVPCs, utilice esta opción StringEquals para comprobar el valor de la cloudshell:SubnetIds condición. El siguiente ejemplo deniega a los usuarios el acceso a subnet-1 ysubnet-2:

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

Para denegar a los usuarios el acceso a determinadas condicionesVPCs, utilice esta opción StringEquals para comprobar el valor de la cloudshell:SecurityGroupIds condición. El siguiente ejemplo deniega a los usuarios el acceso a sg-1 ysg-2:

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

Permita a los usuarios crear entornos con VPC configuraciones específicas

Para permitir a los usuarios acceder a determinadas condicionesVPCs, utilice esta opción StringEquals para comprobar el valor de la cloudshell:VpcIds condición. El siguiente ejemplo permite a los usuarios acceder a vpc-1 yvpc-2:

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

Para permitir a los usuarios acceder a datos específicosVPCs, utilice esta opción StringEquals para comprobar el valor de la cloudshell:SubnetIds condición. El siguiente ejemplo permite a los usuarios acceder a subnet-1 ysubnet-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 a los usuarios acceder a datos específicosVPCs, utilice esta opción StringEquals para comprobar el valor de la cloudshell:SecurityGroupIds condición. El siguiente ejemplo permite a los usuarios acceder a sg-1 ysg-2:

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

Permisos de acceso Servicios de AWS

CloudShell utiliza las IAM credenciales que utilizó para iniciar sesión en AWS Management Console.

nota

Para utilizar las IAM credenciales que utilizó para iniciar sesión en AWS Management Console, debe tener cloudshell:PutCredentials permiso.

Esta función de autenticación previa CloudShell hace que sea cómoda de usar AWS CLI. Sin embargo, IAM el usuario sigue necesitando permisos explícitos para Servicios de AWS las llamadas desde la línea de comandos.

Por ejemplo, supongamos que IAM los usuarios deben crear buckets de Amazon S3 y cargarles archivos como objetos. Puede crear una política que permita esas acciones de forma explícita. La IAM consola proporciona un editor visual interactivo que guía a través del proceso de creación de un documento de JSON política con formato. Una vez creada la política, puede adjuntarla a la IAM identidad correspondiente (usuario, grupo o rol).

Para obtener más información sobre cómo adjuntar políticas administradas, consulte Añadir permisos de IAM identidad (consola) en la Guía del IAM usuario.

Permisos para acceder a las CLI funciones de Amazon Q en CloudShell

Para utilizar CLI las funciones de Amazon Q CloudShell, como las sugerencias integradas, el chat y la traducción, asegúrate de tener los IAM permisos necesarios. Si no puedes acceder a las CLI funciones de Amazon Q en CloudShell, ponte en contacto con tu administrador para que te dé IAM los permisos necesarios. Para obtener más información, consulte los ejemplos de políticas basadas en la identidad para desarrolladores de Amazon Q en la Guía del usuario para desarrolladores de Amazon Q.