View a markdown version of this page

Gestione AWS CloudShell accesso e utilizzo con le policy IAM - AWS CloudShell

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione AWS CloudShell accesso e utilizzo con le policy IAM

Con le risorse di gestione degli accessi che possono essere fornite da AWS Identity and Access Management, gli amministratori possono concedere autorizzazioni agli utenti IAM. In questo modo, questi utenti possono accedere AWS CloudShell e utilizzare le funzionalità dell'ambiente. Gli amministratori possono anche creare politiche che specificano a livello granulare quali azioni gli utenti possono eseguire con l'ambiente shell.

Il modo più rapido per un amministratore di concedere l'accesso agli utenti è tramite una AWS policy gestita. Una policy gestita da AWS è una policy autonoma creata e amministrata da. AWS La seguente policy AWS gestita per AWS CloudShell può essere associata alle identità IAM:

  • AWS CloudShellFullAccess: concede l'autorizzazione all'uso AWS CloudShell con accesso completo a tutte le funzionalità.

La AWS CloudShellFullAccess policy utilizza il carattere jolly (*) per fornire all'identità IAM (utente, ruolo o gruppo) l'accesso completo alle funzionalità CloudShell e alle funzionalità. Per ulteriori informazioni su questa policy, consulta AWS CloudShellFullAccess la AWS Managed Policy User Guide.

Nota

Possono essere CloudShell lanciate anche identità IAM con le seguenti policy AWS gestite. Tuttavia, queste policy forniscono autorizzazioni estese. Pertanto, ti consigliamo di concedere queste politiche solo se sono essenziali per il ruolo lavorativo di un utente IAM.

  • Amministratore: fornisce agli utenti IAM l'accesso completo e consente loro di delegare le autorizzazioni a tutti i servizi e le risorse presenti. AWS

  • Developer power user: consente agli utenti IAM di eseguire attività di sviluppo di applicazioni e creare e configurare risorse e servizi che supportano lo sviluppo di applicazioni AWS consapevoli.

Per ulteriori informazioni sull'associazione di policy gestite, consulta Adding IAM identity permissions (console) nella IAM User Guide.

Gestione delle azioni consentite in AWS CloudShell utilizzo di politiche personalizzate

Per gestire le azioni con cui un utente IAM può eseguire CloudShell, crea una policy personalizzata che utilizzi la policy CloudShellPolicy gestita come modello. In alternativa, modifica una policy in linea incorporata nell'identità IAM pertinente (utente, gruppo o ruolo).

Ad esempio, puoi consentire agli utenti IAM di accedere CloudShell, ma impedire loro di inoltrare le credenziali di CloudShell ambiente utilizzate per accedere. Console di gestione AWS

Importante

Per avviarsi AWS CloudShell da Console di gestione AWS, un utente IAM necessita delle autorizzazioni per le seguenti azioni:

  • CreateEnvironment

  • CreateSession

  • GetEnvironmentStatus

  • StartEnvironment

Se una di queste azioni non è esplicitamente consentita da una policy allegata, al tentativo di avvio viene restituito un errore di autorizzazione IAM. CloudShell

AWS CloudShell autorizzazioni
Nome Descrizione dell'autorizzazione concessa Necessario per l'avvio? CloudShell

cloudshell:CreateEnvironment

Crea un CloudShell ambiente, recupera il layout all'inizio della CloudShell sessione e salva il layout corrente dall'applicazione web nel backend. Questa autorizzazione è prevista solo * come valore indicato inResource. Esempi di politiche IAM per CloudShell

cloudshell:CreateSession

Si connette a un CloudShell ambiente da. Console di gestione AWS

cloudshell:GetEnvironmentStatus

Leggi lo stato di un CloudShell ambiente.

cloudshell:DeleteEnvironment

Elimina un CloudShell ambiente.

No

cloudshell:GetFileDownloadUrls

Genera URL Amazon S3 prefirmati che vengono utilizzati per scaricare file CloudShell tramite l'interfaccia web. CloudShell Questo non è disponibile per gli ambienti VPC.

No

cloudshell:GetFileUploadUrls

Genera URL Amazon S3 prefirmati che vengono utilizzati per caricare file CloudShell tramite l'interfaccia web. CloudShell Questo non è disponibile per gli ambienti VPC.

No

cloudshell:DescribeEnvironments

Descrive gli ambienti.

No

cloudshell:PutCredentials

Inoltra le credenziali utilizzate per accedere al Console di gestione AWS to. CloudShell

No

cloudshell:StartEnvironment

Avvia un CloudShell ambiente che viene interrotto.

cloudshell:StopEnvironment

Arresta un CloudShell ambiente in esecuzione.

No

cloudshell:ApproveCommand

Approva un comando inviato CloudShell da altre console AWS di servizio. No

Esempi di politiche IAM per CloudShell

Gli esempi seguenti mostrano come è possibile creare policy per limitare chi può accedere CloudShell. Gli esempi mostrano anche le azioni che possono essere eseguite nell'ambiente shell.

La seguente politica impone una negazione totale dell'accesso CloudShell e delle sue funzionalità.

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

La seguente politica consente agli utenti IAM di accedere CloudShell ma impedisce loro di generare URL prefirmati per il caricamento e il download dei file. Gli utenti possono comunque trasferire file da e verso l'ambiente, utilizzando client come ad wget esempio.

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

La seguente politica consente agli utenti IAM di accedere CloudShell. Tuttavia, la policy impedisce che le credenziali utilizzate per accedere Console di gestione AWS vengano inoltrate all'ambiente. CloudShell Gli utenti IAM con questa policy devono configurare manualmente le proprie credenziali all'interno. CloudShell

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

La seguente policy consente agli utenti IAM di creare AWS CloudShell ambienti.

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

Autorizzazioni IAM richieste per la creazione e l'utilizzo di ambienti CloudShell VPC

Per creare e utilizzare ambienti CloudShell VPC, l'amministratore IAM deve abilitare l'accesso alle autorizzazioni Amazon EC2 specifiche per VPC. Questa sezione elenca le autorizzazioni Amazon EC2 necessarie per creare e utilizzare ambienti VPC.

Per creare ambienti VPC, la policy IAM assegnata al tuo ruolo deve includere le seguenti autorizzazioni Amazon EC2:

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateTags

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

Ti consigliamo di includere anche:

  • ec2:DeleteNetworkInterface

Nota

Questa autorizzazione non è obbligatoria, ma è necessaria per CloudShell ripulire la risorsa ENI (gli ENI creati per gli ambienti CloudShell VPC sono contrassegnati con una ManagedByCloudShell chiave) da essa creata. Se questa autorizzazione non è abilitata, è necessario pulire manualmente la risorsa ENI dopo ogni utilizzo dell'ambiente CloudShell VPC.

Politica IAM che garantisce CloudShell l'accesso completo, incluso l'accesso a VPC

L'esempio seguente mostra come abilitare le autorizzazioni complete, incluso l'accesso a VPC, per: CloudShell

JSON
{ "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": "" } } } ] }

Utilizzo delle chiavi di condizione IAM per ambienti VPC

Puoi utilizzare le chiavi di CloudShell-specific condizione per le impostazioni VPC per fornire controlli di autorizzazione aggiuntivi per i tuoi ambienti VPC. Puoi anche specificare le sottoreti e i gruppi di sicurezza che l'ambiente VPC può e non può utilizzare.

CloudShell supporta le seguenti chiavi di condizione nelle policy IAM:

  • CloudShell:VpcIds— Consentire o negare uno o più VPC

  • CloudShell:SubnetIds— Consentire o negare una o più sottoreti

  • CloudShell:SecurityGroupIds— Consentire o negare uno o più gruppi di sicurezza

Nota

Se le autorizzazioni per gli utenti con accesso agli CloudShell ambienti pubblici vengono modificate per aggiungere restrizioni all'cloudshell:createEnvironmentazione, possono comunque accedere all'ambiente pubblico esistente. Tuttavia, se desideri modificare una policy IAM con questa restrizione e disabilitare il loro accesso all'ambiente pubblico esistente, devi prima aggiornare la policy IAM con la restrizione e quindi assicurarti che ogni CloudShell utente del tuo account elimini manualmente l'ambiente pubblico esistente utilizzando l'interfaccia utente CloudShell web (Azioni → Elimina ambiente). CloudShell

Policy di esempio con chiavi di condizione per le impostazioni VPC

Negli esempi seguenti viene illustrato come utilizzare le chiavi di condizione per le impostazioni VPC. Dopo aver creato un'istruzione delle policy con le restrizioni desiderate, aggiungere l'istruzione delle policy per l'utente o il ruolo di destinazione.

Assicurati che gli utenti creino solo ambienti VPC e neghi la creazione di ambienti pubblici

Per garantire che gli utenti possano creare solo ambienti VPC, utilizza l'autorizzazione nega come mostrato nell'esempio seguente:

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

Negare agli utenti l'accesso a specifici VPC, sottoreti o gruppi di sicurezza

Per negare agli utenti l'accesso a specifici VPC, utilizzare StringEquals per verificare il valore della condizione cloudshell:VpcIds. L'esempio seguente nega agli utenti l'accesso a e: vpc-1 vpc-2

Per negare agli utenti l'accesso a specifici VPC, utilizzare StringEquals per verificare il valore della condizione cloudshell:SubnetIds. L'esempio seguente nega agli utenti l'accesso a subnet-1 e: subnet-2

Per negare agli utenti l'accesso a specifici VPC, utilizzare StringEquals per verificare il valore della condizione cloudshell:SecurityGroupIds. L'esempio seguente nega agli utenti l'accesso a 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" ] } } } ] }

Consenti agli utenti di creare ambienti con configurazioni VPC specifiche

Per consentire agli utenti di accedere a VPC specifici, usalo StringEquals per verificare il valore della condizione. cloudshell:VpcIds L'esempio seguente consente agli utenti di accedere a vpc-1 evpc-2:

Per consentire agli utenti di accedere a VPC specifici, StringEquals usalo per verificare il valore della cloudshell:SubnetIds condizione. L'esempio seguente consente agli utenti di accedere a subnet-1 esubnet-2:

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

Per consentire agli utenti di accedere a VPC specifici, StringEquals usalo per verificare il valore della cloudshell:SecurityGroupIds condizione. L'esempio seguente consente agli utenti di accedere a sg-1 esg-2:

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

Autorizzazioni per l'accesso Servizi AWS

CloudShell utilizza le credenziali IAM che hai utilizzato per accedere a. Console di gestione AWS

Nota

Per utilizzare le credenziali IAM utilizzate per accedere a Console di gestione AWS, è necessario disporre cloudshell:PutCredentials dell'autorizzazione.

Questa funzionalità di preautenticazione di CloudShell lo rende comodo da usare. AWS CLI Tuttavia, un utente IAM richiede comunque autorizzazioni esplicite per chi viene chiamato dalla riga di comando. Servizi AWS

Ad esempio, supponiamo che agli utenti IAM sia richiesto di creare bucket Amazon S3 e caricare file come oggetti su di essi. Puoi creare una policy che consenta esplicitamente tali azioni. La console IAM fornisce un editor visuale interattivo che guida attraverso il processo di creazione di un documento JSON-formatted politico. Dopo aver creato la policy, puoi collegarla all'identità IAM pertinente (utente, gruppo o ruolo).

Per ulteriori informazioni sull'associazione di policy gestite, consulta Adding IAM identity permissions (console) nella IAM User Guide.

Autorizzazioni per accedere alle funzionalità CLI di Amazon Q in CloudShell

Per utilizzare le funzionalità dell'interfaccia a riga di comando di Amazon Q in CloudShell, ad esempio suggerimenti in linea, chat e traduzione, assicurati di disporre delle autorizzazioni IAM richieste. Se non riesci ad accedere alle funzionalità CLI di Amazon Q in CloudShell, contatta il tuo amministratore per fornirti le autorizzazioni IAM necessarie. Per ulteriori informazioni, consulta gli esempi di Identity-based policy per Amazon Q Developer nella Amazon Q Developer User Guide.