AWS Cloud9 non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Cloud9 possono continuare a utilizzare il servizio come di consueto. Ulteriori informazioni
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à.
Accesso alle istanze EC2 senza ingresso con AWS Systems Manager
Un' «istanza EC2 senza ingresso» creata per un ambiente EC2 consente di connettersi AWS Cloud9 alla relativa istanza Amazon EC2 senza la necessità di aprire alcuna porta in entrata su quell'istanza. Puoi selezionare l'opzione senza ingresso quando crei un ambiente EC2 utilizzando la console, l'interfaccia a riga di comando o uno stack.CloudFormation Per ulteriori informazioni su come creare un ambiente utilizzando la console o l'interfaccia a riga di comando, consulta. Fase 1: creazione di un ambiente
Importante
Non sono previsti costi aggiuntivi per l'utilizzo di Systems Manager Session Manager per gestire le connessioni all'istanza EC2.
Quando selezioni un tipo di ambiente nella pagina Create environment (Crea ambiente) della console , puoi scegliere una nuova istanza EC2 che richiede la connettività in ingresso o una nuova istanza EC2 senza ingresso che non la richiede:
-
New EC2 instance (Nuova istanza EC2): con questa configurazione, il gruppo di sicurezza per l'istanza dispone di una regola per consentire il traffico di rete in entrata. Il traffico di rete in entrata è limitato a Indirizzi IP approvati per connessioni AWS Cloud9. Una porta in entrata aperta consente di AWS Cloud9 connettersi tramite SSH alla relativa istanza. Se utilizzi AWS Systems Manager Session Manager, puoi accedere alla tua istanza Amazon EC2 tramite SSM senza aprire le porte in entrata (nessun ingresso). Questo metodo è applicabile solo per nuove istanze Amazon EC2. Per ulteriori informazioni, consulta Vantaggi dell'utilizzo di Systems Manager per ambienti EC2.
-
Existing compute (Elaborazione esistente): con questa configurazione, viene eseguito l'accesso a un'istanza Amazon EC2 esistente che richiede dettagli di accesso SSH per i quali l'istanza deve disporre di una regola del gruppo di sicurezza in entrata. Se utilizzi questa opzione, viene creato automaticamente un ruolo di servizio. Puoi vedere il nome del ruolo di servizio in una nota in fondo alla schermata di configurazione.
Se crei un ambiente utilizzando AWS CLI, puoi configurare un'istanza EC2 senza ingresso impostando l'opzione --connection-type CONNECT_SSM quando chiami il comando create-environment-ec2. Per ulteriori informazioni sulla creazione del ruolo del servizio richiesto e del profilo dell'istanza, consulta Gestione dei profili di istanza per Systems Manager con AWS CLI.
Dopo aver creato un ambiente che utilizza un'istanza EC2 senza ingresso, verifica quanto segue:
-
Systems Manager Session Manager dispone delle autorizzazioni per eseguire operazioni sull'istanza EC2 per conto dell'utente. Per ulteriori informazioni, consulta Gestione delle autorizzazioni di Systems Manager.
-
AWS Cloud9 gli utenti possono accedere all'istanza gestita da Session Manager. Per ulteriori informazioni, consulta Fornire agli utenti l'accesso a istanze gestite da Session Manager.
Vantaggi dell'utilizzo di Systems Manager per ambienti EC2
Consentire a Session Manager di gestire la connessione sicura tra AWS Cloud9 e la relativa istanza EC2 offre due vantaggi chiave:
-
Nessun requisito per aprire le porte in ingresso per l'istanza
-
Possibilità di avviare l'istanza in una sottorete pubblica o privata
Gestione delle autorizzazioni di Systems Manager
Per impostazione predefinita, Systems Manager non è autorizzato a eseguire operazioni sulle istanze EC2. L'accesso viene fornito tramite un profilo di istanza AWS Identity and Access Management (IAM). (Un profilo dell'istanza è un container che trasferisce le informazioni sul ruolo IAM a un'istanza EC2 all'avvio).
Quando crei l'istanza EC2 senza ingresso utilizzando la AWS Cloud9 console, sia il service role (AWSCloud9SSMAccessRole) che il profilo dell'istanza IAM (AWSCloud9SSMInstanceProfile) vengono creati automaticamente per te. (Puoi visualizzareAWSCloud9SSMAccessRole nella console di gestione IAM. I profili dell'istanza non vengono visualizzati nella console IAM.
Importante
Se crei un ambiente EC2 senza ingresso per la prima volta con AWS CLI, devi definire in modo esplicito il ruolo di servizio e il profilo dell'istanza richiesti. Per ulteriori informazioni, consulta Gestione dei profili di istanza per Systems Manager con AWS CLI.
Importante
Se stai creando un AWS Cloud9 ambiente e utilizzi Amazon EC2 Systems Manager con AWSCloud9User o AWSCloud9Administrator le policy allegate, devi anche allegare una policy personalizzata con autorizzazioni IAM specifiche, vedi. Policy IAM personalizzata per la creazione di ambienti SSM Ciò è dovuto a un problema di autorizzazioni con le AWSCloud9Administrator policy e. AWSCloud9User
Per una maggiore protezione della sicurezza, il ruolo AWS Cloud9 collegato al servizio presenta una PassRole restrizione nella sua politica. AWSServiceRoleforAWSCloud9 AWSCloud9ServiceRolePolicy Quando passi un ruolo IAM per un servizio, tale servizio può assumere il ruolo ed eseguire operazioni per tuo conto. In questo caso, l'PassRoleautorizzazione garantisce che sia AWS Cloud9 possibile passare solo il AWSCloud9SSMAccessRole ruolo (e la relativa autorizzazione) a un'istanza EC2. Questo limita le operazioni che possono essere eseguite sull'istanza EC2 solo a quelle richieste da AWS Cloud9.
Nota
Se non è più necessario utilizzare Systems Manager per accedere a un'istanza, puoi eliminare il ruolo di ruolo di servizio AWSCloud9SSMAccessRole. Per ulteriori informazioni, consulta la sezione Eliminazione di ruoli o profili delle istanze nella Guida per l'utente di IAM.
Gestione dei profili di istanza per Systems Manager con AWS CLI
È inoltre possibile creare un ambiente EC2 senza ingresso con AWS CLI. Quando chiami create-environment-ec2, imposta l'opzione --connection-type a CONNECT_SSM.
Se utilizzi questa opzione, il ruolo di servizio AWSCloud9SSMAccessRole e AWSCloud9SSMInstanceProfile non vengono creati automaticamente. Pertanto, per creare il profilo del servizio richiesto e il profilo dell'istanza, procedi in uno dei seguenti modi:
-
Crea un ambiente EC2 utilizzando la console dopo che il ruolo di servizio
AWSCloud9SSMAccessRoleeAWSCloud9SSMInstanceProfilesono stati creati automaticamente. Dopo la loro creazione, il ruolo di servizio e il profilo dell'istanza sono disponibili per tutti gli ambienti EC2 aggiuntivi creati tramite AWS CLI. -
Eseguite i seguenti AWS CLI comandi per creare il ruolo di servizio e il profilo dell'istanza.
aws iam create-role --role-name AWSCloud9SSMAccessRole --path /service-role/ --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com","cloud9.amazonaws.com"] },"Action": "sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSCloud9SSMAccessRole --policy-arn arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile aws iam create-instance-profile --instance-profile-name AWSCloud9SSMInstanceProfile --path /cloud9/ aws iam add-role-to-instance-profile --instance-profile-name AWSCloud9SSMInstanceProfile --role-name AWSCloud9SSMAccessRole
Fornire agli utenti l'accesso a istanze gestite da Session Manager
Per aprire un AWS Cloud9 ambiente connesso a un'istanza EC2 tramite Systems Manager, un utente deve disporre dell'autorizzazione per il funzionamento dell'API,StartSession. Questa operazione avvia una connessione all'istanza EC2 gestita per una sessione di Session Manager. Puoi concedere l'accesso agli utenti utilizzando una politica gestita AWS Cloud9 specifica (consigliata) o modificando una policy IAM e aggiungendo le autorizzazioni necessarie.
| Metodo | Description |
|---|---|
|
Utilizza una AWS Cloud9 politica gestita specifica |
Consigliamo di utilizzare policy AWS gestite per consentire agli utenti di accedere alle istanze EC2 gestite da Systems Manager. Le policy gestite forniscono una serie di autorizzazioni per casi AWS Cloud9 d'uso standard e possono essere facilmente collegate a un'entità IAM. Tutte le policy gestite includono anche le autorizzazioni per eseguire l'operazione API
ImportanteSe stai creando un AWS Cloud9 ambiente e utilizzi Amazon EC2 Systems Manager con Per ulteriori informazioni, consulta AWS politiche gestite per AWS Cloud9. |
|
Modifica di una policy IAM e aggiunta delle istruzioni di policy necessarie |
Per modificare una policy esistente puoi aggiungere le autorizzazioni per l'API Quando modifichi la policy, aggiungi policy statement (vedi di seguito) che permette di eseguire l'operazione API |
Per eseguire l'operazione API StartSession puoi usare le seguenti autorizzazioni. La chiave ssm:resourceTag condition specifica che è possibile avviare una sessione di Session Manager per qualsiasi istanza (Resource: arn:aws:ec2:*:*:instance/*) a condizione che l'istanza sia un ambiente di sviluppo AWS Cloud9 EC2 (aws:cloud9:environment).
Nota
Le seguenti policy gestite includono anche queste istruzioni di policy: AWSCloud9Administrator, AWSCloud9User e AWSCloud9EnvironmentMember.
{ "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }
Utilizzato CloudFormation per creare ambienti EC2 senza ingresso
Quando utilizzi un modello CloudFormation per definire un ambiente di sviluppo Amazon EC2 senza ingresso, esegui le operazioni seguenti prima di creare la pila:
-
Crea un ruolo di servizio
AWSCloud9SSMAccessRolee un profilo dell'istanzaAWSCloud9SSMInstanceProfile. Per ulteriori informazioni, consulta Creazione del ruolo di servizio e del profilo dell'istanza con un CloudFormation modello. -
Aggiorna la policy per la chiamata dell'entità IAM. CloudFormation In tal modo l'entità può avviare una sessione di Session Manager che si connette all'istanza EC2. Per ulteriori informazioni, consulta Aggiunta di autorizzazioni di Systems Manager a una policy IAM.
Creazione del ruolo di servizio e del profilo dell'istanza con un CloudFormation modello
È necessario creare il ruolo di servizio AWSCloud9SSMAccessRole e il profilo dell'istanza AWSCloud9SSMInstanceProfile per consentire a Systems Manager di gestire l'istanza EC2 che supporta l'ambiente di sviluppo.
Se hai creato in precedenza AWSCloud9SSMAccessRole e hai AWSCloud9SSMInstanceProfile creato un ambiente EC2 senza ingresso with the console o eseguendo AWS CLI comandi, il ruolo di servizio e il profilo dell'istanza sono già disponibili per l'uso.
Nota
Supponiamo che tu tenti di creare uno CloudFormation stack per un ambiente EC2 senza ingresso ma di non aver prima creato il ruolo di servizio e il profilo di istanza richiesti. Lo stack non viene creato e viene visualizzato il seguente messaggio di errore:
Profilo di istanza Il AWSCloud9 SSMInstance profilo non esiste nell'account.
Quando crei un ambiente EC2 senza ingresso per la prima volta che lo utilizzi CloudFormation, puoi definire le risorse AWSCloud9SSMAccessRole e AWSCloud9SSMInstanceProfile come IAM nel modello.
Questo estratto di modello di esempio mostra come definire queste risorse. L'AssumeRoleazione restituisce credenziali di sicurezza che forniscono l'accesso sia all' AWS Cloud9 ambiente che alla relativa istanza EC2.
AWSTemplateFormatVersion: 2010-09-09 Resources: AWSCloud9SSMAccessRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - cloud9.amazonaws.com - ec2.amazonaws.com Action: - 'sts:AssumeRole' Description: 'Service linked role for AWS Cloud9' Path: '/service-role/' ManagedPolicyArns: - arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile RoleName: 'AWSCloud9SSMAccessRole' AWSCloud9SSMInstanceProfile: Type: "AWS::IAM::InstanceProfile" Properties: InstanceProfileName: AWSCloud9SSMInstanceProfile Path: "/cloud9/" Roles: - Ref: AWSCloud9SSMAccessRole
Aggiunta di autorizzazioni di Systems Manager a una policy IAM
Dopo aver definito un ruolo di servizio e un profilo dell'istanza nel modello CloudFormation, assicurati che l'entità IAM che crea lo stack disponga dell'autorizzazione per avviare una sessione di Session Manager. Una sessione è una connessione effettuata all'istanza EC2 tramite Session Manager.
Nota
Se non aggiungi autorizzazioni per avviare una sessione di Session Manager prima di creare una pila per un ambiente EC2 senza ingresso, viene restituito un errore AccessDeniedException.
Aggiungi le seguenti autorizzazioni alla policy per l'entità IAM chiamando CloudFormation.
{ "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }
Configurazione degli endpoint VPC per Amazon S3 per scaricare le dipendenze
Se l'istanza EC2 del tuo AWS Cloud9 ambiente non ha accesso a Internet, crea un endpoint VPC per un bucket Amazon S3 specificato. Questo bucket contiene le dipendenze necessarie per mantenere il tuo IDE. up-to-date
L'impostazione di un endpoint VPC per Amazon S3 comporta anche la personalizzazione della policy di accesso per permettere l'accesso solo al bucket attendibile che contiene le dipendenze da scaricare.
Nota
Puoi creare e configurare endpoint VPC utilizzando Console di gestione AWS, AWS CLI o l'API Amazon VPC. La procedura seguente spiega come creare un endpoint VPC utilizzando l'interfaccia della console.
Creazione e configurazione di un endpoint VPC per Amazon S3
-
Nel Console di gestione AWS, vai alla pagina della console per Amazon VPC.
-
Nella barra di navigazione, scegli Endpoints (Endpoint).
-
Nella pagina Endpoints (Endpoint), scegli Create Endpoint (Crea endpoint).
-
Nella pagina Create Endpoint (Crea endpoint), immetti "s3" nel campo di ricerca e premi Invio per elencare gli endpoint disponibili per Amazon S3 nella Regione AWS corrente.
-
Dall'elenco degli endpoint Amazon S3 restituiti, seleziona il tipo di Gateway.
-
Quindi, scegli il VPC che contiene l'istanza EC2 dell'ambiente.
-
Ora scegli la tabella di instradamento del VPC. In questo modo, le sottoreti associate possono accedere all'endpoint. L'istanza EC2 dell'ambiente si trova in una di queste sottoreti.
-
Nella sezione Policy, scegli l'opzione Custom (Personalizza) e sostituisci la policy standard con quella riportata di seguito.
Per l'elemento
Resource, sostituisci{bucket_name}con il nome effettivo del bucket disponibile nella Regione AWS. Ad esempio, se utilizzi AWS Cloud9 nella regione Europa (Irlanda), specifichi quanto segue"Resource": "arn:aws:s3:::static-eu-west-1-prod-static-hld3vzaf7c4h/content/dependencies/:.La tabella seguente elenca i nomi dei bucket per la cartella Regioni AWS where AWS Cloud9 è disponibile.
Bucket Amazon S3 nelle regioni AWS Cloud9 Regione AWS Nome bucket Stati Uniti orientali (Ohio)
static-us-east-2-prod-static-1c3sfcvf9hy4mStati Uniti orientali (Virginia settentrionale)
static-us-east-1-prod-static-mft1klnkc4hlStati Uniti occidentali (Oregon)
static-us-west-2-prod-static-p21mksqx9zlrStati Uniti occidentali (California settentrionale)
static-us-west-1-prod-static-16d59zrrp01z0Africa (Città del Capo)
static-af-south-1-prod-static-v6v7i5ypdppvAsia Pacific (Hong Kong)
static-ap-east-1-prod-static-171xhpfkrorh6Asia Pacific (Mumbai) static-ap-south-1-prod-static-ykocre202i9dAsia Pacifico (Osaka) static-ap-northeast-3-prod-static-ivmxqzrx2ioiAsia Pacifico (Seoul) static-ap-northeast-2-prod-static-1wxyctlhwiajmAsia Pacifico (Singapore) static-ap-southeast-1-prod-static-13ibpyrx4vk6dAsia Pacifico (Sydney)
static-ap-southeast-2-prod-static-1cjsl8bx27rfuAsia Pacifico (Tokyo)
static-ap-northeast-1-prod-static-4fwvbdisquj8Canada (Centrale)
static-ca-central-1-prod-static-g80lpejy486cEuropa (Francoforte)
static-eu-central-1-prod-static-14lbgls2vrkhEuropa (Irlanda)
static-eu-west-1-prod-static-hld3vzaf7c4hEuropa (Londra)
static-eu-west-2-prod-static-36lbg202837xEuropa (Milano)
static-eu-south-1-prod-static-1379tzkd3ni7dEuropa (Parigi)
static-eu-west-3-prod-static-1rwpkf766ke58Europa (Stoccolma)
static-eu-north-1-prod-static-1qzw982y7yu7eMedio Oriente (Bahrein)
static-me-south-1-prod-static-gmljex38qtqxSud America (San Paolo)
static-sa-east-1-prod-static-1cl8k0y7opidtIsraele (Tel Aviv)
static-il-central-1-prod-static-k02vrnhcesue -
Scegliere Create Endpoint (Crea endpoint).
Se le informazioni di configurazione fornite sono corrette, viene visualizzato un messaggio con l'ID dell'endpoint creato.
-
Per verificare che l'IDE può accedere al bucket Amazon S3, avvia una sessione del terminale scegliendo Window (Finestra), New Terminal (Nuovo terminale) nella barra dei menu. Quindi, esegui il comando seguente, sostituendo
{bucket_name}con il nome effettivo del bucket nella tua regione.ping {bucket_name}.s3.{region}.amazonaws.com.rproxy.govskope.us.Ad esempio, se hai creato un endpoint per un bucket S3 nella regione Stati Uniti orientali (Virginia settentrionale), esegui il comando riportato di seguito.
ping static-us-east-1-prod-static-mft1klnkc4hl---s3---us-east-1.amazonaws.com.rproxy.govskope.usSe il ping ottiene una risposta, ciò conferma che l'IDE può accedere al bucket e alle rispettive dipendenze.
Per ulteriori informazioni su questa funzionalità, consulta Endpoints for Amazon S3 nella AWS PrivateLink Guida.
Configurazione degli endpoint VPC per la connettività privata
Quando si avvia un'istanza in una sottorete con l'opzione di accesso tramite Systems Manager, il gruppo di sicurezza non dispone di una regola di ingresso per permettere il traffico di rete in entrata. Il gruppo di sicurezza, tuttavia, dispone di una regola di uscita che permette il traffico in uscita dall'istanza. Ciò è necessario per scaricare i pacchetti e le librerie necessari per mantenere aggiornato l' AWS Cloud9 IDE.
Per impedire il traffico in uscita e in entrata per l'istanza, crea e configura gli endpoint Amazon VPC per Systems Manager. Con un endpoint VPC di interfaccia (endpoint di interfaccia), puoi connetterti ai servizi forniti da. AWS PrivateLink AWS PrivateLink è una tecnologia che può essere utilizzata per accedere in modo privato ad Amazon EC2 e Systems APIs Manager utilizzando indirizzi IP privati. Per configurare gli endpoint VPC per utilizzare Systems Manager, segui le istruzioni fornite in questa risorsa del Portale del sapere
avvertimento
Supponi di voler configurare un gruppo di sicurezza che non permette il traffico di rete in ingresso o in uscita. Quindi, l'istanza EC2 che supporta il tuo AWS Cloud9 IDE non ha accesso a Internet. È necessario creare un endpoint Amazon S3 per il VPC in modo da permettere l'accesso alle dipendenze contenute in un bucket S3 attendibile. Inoltre, alcune Servizi AWS, ad esempio AWS Lambda, potrebbero non funzionare come previsto senza accesso a Internet.
Con AWS PrivateLink, sono previsti costi di elaborazione dei dati per ogni gigabyte elaborato tramite l'endpoint VPC. indipendentemente dall'origine o dalla destinazione del traffico. Per ulteriori informazioni, consultare Prezzi di AWS PrivateLink