Gestione dell' AWS CloudShell accesso e dell'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 dell' AWS CloudShell accesso e dell'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 le autorizzazioni agli IAM utenti. In questo modo, questi utenti possono accedere AWS CloudShell e utilizzare le funzionalità dell'ambiente. Gli amministratori possono anche creare policy che specificano a livello granulare le azioni che 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 AWS gestita è una policy autonoma creata e amministrata da. AWS La seguente politica AWS gestita per AWS CloudShell può essere allegata alle IAM identità:

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

La AWS CloudShellFullAccesspolicy utilizza il carattere jolly (*) per fornire all'IAMidentità (utente, ruolo o gruppo) l'accesso completo a CloudShell e funzionalità. Per ulteriori informazioni su questa politica, consulta AWS CloudShellFullAccessla AWS Managed Policy User Guide.

Nota

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

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

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

Per ulteriori informazioni sull'allegazione di policy gestite, consulta Aggiungere autorizzazioni di IAM identità (console) nella Guida per l'IAMutente.

Gestione delle azioni consentite nell' AWS CloudShell utilizzo di politiche personalizzate

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

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

Importante

Per eseguire l'avvio AWS CloudShell da AWS Management Console, un IAM utente deve disporre delle autorizzazioni per le seguenti azioni:

  • CreateEnvironment

  • CreateSession

  • GetEnvironmentStatus

  • StartEnvironment

Se una di queste azioni non è esplicitamente consentita da una politica allegata, viene restituito un errore di IAM autorizzazione quando si tenta di avviare. CloudShell

AWS CloudShell autorizzazioni
Nome Descrizione dell'autorizzazione concessa Necessario per il lancio 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 per Resource come descritto in. Esempi di IAM politiche per CloudShell

cloudshell:CreateSession

Si connette a un CloudShell ambiente da. AWS Management Console

cloudshell:GetEnvironmentStatus

Leggi lo stato di un CloudShell ambiente.

cloudshell:DeleteEnvironment

Elimina un CloudShell ambiente.

No

cloudshell:GetFileDownloadUrls

Genera Amazon URLs S3 prefirmato che viene utilizzato per scaricare file CloudShell tramite CloudShell l'interfaccia Web. Questo non è disponibile per VPC gli ambienti.

No

cloudshell:GetFileUploadUrls

Genera Amazon URLs S3 prefirmato che viene utilizzato per caricare file CloudShell tramite CloudShell l'interfaccia Web. Questo non è disponibile per VPC gli ambienti.

No

cloudshell:DescribeEnvironments

Descrive gli ambienti.

No

cloudshell:PutCredentials

Inoltra le credenziali utilizzate per accedere a. AWS Management Console CloudShell

No

cloudshell:StartEnvironment

Avvia un CloudShell ambiente che viene interrotto.

cloudshell:StopEnvironment

Arresta un CloudShell ambiente in esecuzione.

No

Esempi di IAM politiche per CloudShell

Gli esempi seguenti mostrano come è possibile creare politiche 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 a CloudShell e alle relative funzionalità.

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

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

{ "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 IAM agli utenti di accedere CloudShell. Tuttavia, la politica impedisce che le credenziali utilizzate per accedere AWS Management Console vengano inoltrate all'ambiente. CloudShell IAMgli utenti con questa politica devono configurare manualmente le proprie credenziali all'interno. CloudShell

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

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

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

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

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

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

  • 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 ENI risorsa (ENIscreata per CloudShell VPC gli ambienti contrassegnati con la ManagedByCloudShell chiave) da essa creata. Se questa autorizzazione non è abilitata, è necessario pulire manualmente la ENI risorsa dopo ogni utilizzo CloudShell VPC dell'ambiente.

IAMpolitica che garantisce CloudShell l'accesso completo, incluso l'accesso a VPC

L'esempio seguente mostra come abilitare le autorizzazioni complete, incluso l'accesso aVPC, per: 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": "" } } } ] }

Utilizzo dei tasti di IAM condizione per gli ambienti VPC

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

CloudShell supporta le seguenti chiavi di condizione nelle IAM politiche:

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

  • 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 IAM politica con questa restrizione e disabilitare il loro accesso all'ambiente pubblico esistente, devi prima aggiornare la IAM politica con la restrizione, 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

Politiche di esempio con chiavi di condizione per le impostazioni VPC

Gli esempi seguenti mostrano come utilizzare i tasti di condizione per VPC le impostazioni. Dopo aver creato un'istruzione delle policy con le restrizioni desiderate, aggiungere l'istruzione delle policy per l'utente o il ruolo di destinazione.

Assicuratevi che gli utenti creino solo VPC ambienti e negate la creazione di ambienti pubblici

Per garantire che gli utenti possano creare solo VPC ambienti, utilizzate l'autorizzazione di negazione come illustrato nell'esempio seguente:

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

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

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

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

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

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

Per negare agli utenti l'accesso a informazioni specificheVPCs, usa StringEquals per verificare il valore della cloudshell:SecurityGroupIds condizione. L'esempio seguente nega agli utenti l'accesso a sg-1 e: sg-2

{ "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 specifiche VPC

Per consentire agli utenti l'accesso a VPCs informazioni specifiche, StringEquals utilizzare per verificare il valore della cloudshell:VpcIds condizione. L'esempio seguente consente agli utenti di accedere a vpc-1 evpc-2:

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

Per consentire agli utenti di accedere a VPCs informazioni specifiche, StringEquals utilizzare per verificare il valore della cloudshell:SubnetIds condizione. L'esempio seguente consente agli utenti di accedere a 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" ] } } } ] }

Per consentire agli utenti di accedere a VPCs informazioni specifiche, StringEquals utilizzare per verificare il valore della cloudshell:SecurityGroupIds condizione. L'esempio seguente consente agli utenti di accedere a 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" ] } } } ] }

Autorizzazioni per l'accesso Servizi AWS

CloudShell utilizza IAM le credenziali utilizzate per accedere a. AWS Management Console

Nota

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

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

Ad esempio, supponiamo che IAM agli utenti venga richiesto di creare bucket Amazon S3 e di caricare file come oggetti su di essi. Puoi creare una policy che consenta esplicitamente tali azioni. La IAM console fornisce un editor visivo interattivo che guida attraverso il processo di creazione di un documento di policy in JSON formato standard. Dopo aver creato la policy, è possibile allegarla all'IAMidentità pertinente (utente, gruppo o ruolo).

Per ulteriori informazioni sull'allegazione di policy gestite, consulta Aggiungere autorizzazioni di IAM identità (console) nella Guida per l'IAMutente.

Autorizzazioni per l'accesso alle CLI funzionalità di Amazon Q in CloudShell

Per utilizzare CLI le funzionalità di Amazon Q CloudShell, ad esempio suggerimenti in linea, chat e traduzione, assicurati di disporre delle IAM autorizzazioni necessarie. Se non riesci ad accedere alle CLI funzionalità di Amazon Q in CloudShell, contatta il tuo amministratore per fornirti le IAM autorizzazioni necessarie. Per ulteriori informazioni, consulta esempi di policy basate sull'identità per Amazon Q Developer nella Amazon Q Developer User Guide.