AWS Cloud9 non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Cloud9 possono continuare a utilizzare il servizio normalmente. 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à.
Un' « EC2 istanza senza ingresso» creata per un EC2 ambiente consente di connettersi AWS Cloud9 alla relativa EC2 istanza Amazon senza la necessità di aprire alcuna porta in entrata su quell'istanza. Puoi selezionare l'opzione no-ingress quando crei un EC2 ambiente utilizzando la console, l'interfaccia a riga di comando o uno stack.AWS CloudFormation Per ulteriori informazioni su come creare un ambiente utilizzando la console o l'interfaccia a riga di comando, vedere. 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' EC2 istanza.
Quando si seleziona un tipo di ambiente nella pagina Crea ambiente della console, è possibile scegliere una nuova EC2 istanza che richiede connettività in ingresso o una nuova EC2 istanza senza ingresso che non richiede quanto segue:
-
Nuova EC2 istanza: con questa configurazione, il gruppo di sicurezza dell'istanza ha 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 sua istanza. Se utilizzi AWS Systems Manager Session Manager, puoi accedere alla tua EC2 istanza Amazon tramite SSM senza aprire le porte in entrata (nessun ingresso). Questo metodo è applicabile solo per le nuove EC2 istanze Amazon. Per ulteriori informazioni, consulta Vantaggi dell'utilizzo di Systems Manager per EC2 ambienti.
-
Elaborazione esistente: con questa configurazione, si accede a un' EC2 istanza Amazon 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' EC2 istanza senza ingresso impostando l'--connection-type CONNECT_SSM
opzione 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 completato la creazione di un ambiente che utilizza un' EC2 istanza senza ingresso, confermate quanto segue:
-
Systems Manager Session Manager dispone delle autorizzazioni per eseguire azioni sull' EC2 istanza 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 EC2 ambienti
Consentire a Session Manager di gestire la connessione sicura tra AWS Cloud9 e la relativa EC2 istanza 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
Le connessioni sicure tra AWS Cloud9 e la relativa EC2 istanza sono gestite da Session Manager. Session Manager è una funzionalità di Systems Manager completamente gestita che consente di connettersi AWS Cloud9 alla relativa EC2 istanza senza la necessità di aprire le porte in ingresso.
Importante
L'opzione di utilizzare Systems Manager per connessioni senza ingresso è attualmente disponibile solo durante la creazione di nuovi EC2 ambienti.
Con l'avvio di una sessione di Session Manager, viene stabilita una connessione all'istanza di destinazione. Con la connessione attiva, ora l'ambiente può interagire con l'istanza tramite il servizio Systems Manager. Il servizio Systems Manager comunica con l'istanza tramite Systems Manager Agent (SSM Agent).
Per impostazione predefinita, SSM Agent è installato su tutte le istanze utilizzate dagli ambienti. EC2
Gestione delle autorizzazioni di Systems Manager
Per impostazione predefinita, Systems Manager non dispone dell'autorizzazione per eseguire azioni sulle EC2 istanze. L'accesso viene fornito tramite un profilo di istanza AWS Identity and Access Management (IAM). (Un profilo di istanza è un contenitore che trasmette le informazioni sul ruolo IAM a un' EC2 istanza al momento del lancio.)
Quando crei l' EC2 istanza senza ingresso utilizzando la AWS Cloud9 console, sia il service role (AWSCloud9SSMAccessRole
) che il profilo dell'istanza IAM (AWSCloud9SSMInstanceProfile
) vengono creati automaticamente. (Puoi visualizzareAWSCloud9SSMAccessRole
nella console di gestione IAM. I profili dell'istanza non vengono visualizzati nella console IAM.
Importante
Se crei un EC2 ambiente 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 AWSCloud9Administrator
o le AWSCloud9User
policy allegate, devi anche allegare una policy personalizzata con autorizzazioni IAM specifiche, vediPolicy IAM personalizzata per la creazione di ambienti SSM. Ciò è dovuto a un problema di autorizzazioni con le policy AWSCloud9Administrator
andAWSCloud9User
.
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'PassRole
autorizzazione garantisce che AWS Cloud9 possa passare solo il AWSCloud9SSMAccessRole
ruolo (e la relativa autorizzazione) a un'istanza. EC2 Ciò limita le azioni che possono essere eseguite sull' EC2 istanza 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 EC2 ambiente 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 EC2 ambiente utilizzando la console una volta ottenuto il ruolo di
AWSCloud9SSMAccessRole
servizio eAWSCloud9SSMInstanceProfile
creato automaticamente in seguito. Dopo la creazione, il ruolo di servizio e il profilo dell'istanza sono disponibili per tutti EC2 gli ambienti aggiuntivi creati utilizzando. AWS CLI -
Esegui 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' EC2 istanza tramite Systems Manager, un utente deve disporre dell'autorizzazione per il funzionamento dell'API,StartSession
. Questa operazione avvia una connessione all' EC2 istanza 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 | Descrizione |
---|---|
Utilizza una AWS Cloud9 politica gestita specifica |
Si consiglia di utilizzare policy AWS gestite per consentire agli utenti di accedere alle EC2 istanze 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 AWS Cloud9 EC2 sviluppo (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/*"
]
}
Utilizzo AWS CloudFormation per creare ambienti senza ingresso EC2
Quando usi un AWS CloudFormation modello per definire un ambiente di EC2 sviluppo Amazon senza ingresso, procedi come segue prima di creare lo stack:
-
Crea un ruolo di servizio
AWSCloud9SSMAccessRole
e un profilo dell'istanzaAWSCloud9SSMInstanceProfile
. Per ulteriori informazioni, consulta Creazione del ruolo di servizio e del profilo dell'istanza con un AWS CloudFormation modello. -
Aggiorna la policy per la chiamata all'entità IAM. AWS CloudFormation In questo modo, l'entità può avviare una sessione di Session Manager che si connette all' EC2 istanza. 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 AWS CloudFormation modello
È necessario creare il ruolo di servizio AWSCloud9SSMAccessRole
e il profilo dell'istanza AWSCloud9SSMInstanceProfile
per consentire a Systems Manager di gestire l' EC2 istanza che supporta l'ambiente di sviluppo.
Se in precedenza è stato creato AWSCloud9SSMAccessRole
e AWSCloud9SSMInstanceProfile
creato un EC2 ambiente senza ingresso with the console o l'esecuzione di AWS CLI comandi, il ruolo di servizio e il profilo dell'istanza sono già disponibili per l'uso.
Nota
Supponiamo di tentare di creare uno AWS CloudFormation stack per un EC2 ambiente 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 EC2 ambiente senza ingresso per la prima volta che lo utilizzi AWS CloudFormation, puoi definire le risorse AWSCloud9SSMAccessRole
e AWSCloud9SSMInstanceProfile
come IAM nel modello.
Questo estratto di modello di esempio mostra come definire queste risorse. L'AssumeRole
azione restituisce credenziali di sicurezza che forniscono l'accesso sia all' AWS Cloud9 ambiente che alla sua 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 AWS 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' EC2 istanza utilizzando Session Manager.
Nota
Se non si aggiungono le autorizzazioni per avviare una sessione di Session Manager prima di creare uno stack per un EC2 ambiente senza ingresso, viene restituito un AccessDeniedException
errore.
Aggiungi le seguenti autorizzazioni alla policy per l'entità IAM chiamando AWS 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' EC2 istanza del tuo AWS Cloud9 ambiente non ha accesso a Internet, crea un endpoint VPC per un bucket Amazon S3 specifico. 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 AWS Management Console, 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 AWS Management Console, 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 del EC2 tuo ambiente.
-
Ora scegli la tabella di instradamento del VPC. In questo modo, le sottoreti associate possono accedere all'endpoint. L' EC2 istanza del tuo 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.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "Access-to-C9-bucket-only", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::{bucket_name}/content/dependencies/*" } ] }
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-1c3sfcvf9hy4m
Stati Uniti orientali (Virginia settentrionale)
static-us-east-1-prod-static-mft1klnkc4hl
US West (Oregon)
static-us-west-2-prod-static-p21mksqx9zlr
Stati Uniti occidentali (California settentrionale)
static-us-west-1-prod-static-16d59zrrp01z0
Africa (Città del Capo)
static-af-south-1-prod-static-v6v7i5ypdppv
Asia Pacific (Hong Kong)
static-ap-east-1-prod-static-171xhpfkrorh6
Asia Pacific (Mumbai) static-ap-south-1-prod-static-ykocre202i9d
Asia Pacific (Osaka) static-ap-northeast-3-prod-static-ivmxqzrx2ioi
Asia Pacific (Seul) static-ap-northeast-2-prod-static-1wxyctlhwiajm
Asia Pacifico (Singapore) static-ap-southeast-1-prod-static-13ibpyrx4vk6d
Asia Pacifico (Sydney)
static-ap-southeast-2-prod-static-1cjsl8bx27rfu
Asia Pacifico (Tokyo)
static-ap-northeast-1-prod-static-4fwvbdisquj8
Canada (Centrale)
static-ca-central-1-prod-static-g80lpejy486c
Europa (Francoforte)
static-eu-central-1-prod-static-14lbgls2vrkh
Europa (Irlanda)
static-eu-west-1-prod-static-hld3vzaf7c4h
Europa (Londra)
static-eu-west-2-prod-static-36lbg202837x
Europa (Milano)
static-eu-south-1-prod-static-1379tzkd3ni7d
Europa (Parigi)
static-eu-west-3-prod-static-1rwpkf766ke58
Europa (Stoccolma)
static-eu-north-1-prod-static-1qzw982y7yu7e
Medio Oriente (Bahrein)
static-me-south-1-prod-static-gmljex38qtqx
Sud America (San Paolo)
static-sa-east-1-prod-static-1cl8k0y7opidt
Israele (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.
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
Se 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 Manager APIs 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' EC2 istanza 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, alcuni 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, consulta Prezzi di AWS PrivateLink