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à.
Usa il register-on-premises-instance comando (IAM Session ARN) per registrare un'istanza locale
Per il massimo controllo sull'autenticazione e la registrazione delle istanze locali, puoi utilizzare il register-on-premises-instancecomando e le credenziali temporanee aggiornate periodicamente generate con (). AWS Security Token Service AWS STS Un ruolo IAM statico per l'istanza assume il ruolo di queste credenziali aggiornate per eseguire operazioni di distribuzione. AWS STS CodeDeploy
Questo metodo è molto utile quando è necessario registrare un numero elevato di istanze, Consente di automatizzare il processo di registrazione con. CodeDeploy È possibile utilizzare il proprio sistema di identità e autenticazione per autenticare le istanze locali e distribuire le credenziali di sessione IAM dal servizio alle istanze con cui utilizzarle. CodeDeploy
Nota
In alternativa, puoi utilizzare un utente IAM condiviso distribuito su tutte le istanze locali per chiamare l' AWS STS AssumeRoleAPI e recuperare le credenziali di sessione per le istanze locali. Questo metodo è meno sicuro e non è consigliato per ambienti di produzione o mission-critical.
Utilizza le informazioni contenute nei seguenti argomenti per configurare un'istanza locale utilizzando credenziali di sicurezza temporanee generate con. AWS STS
Argomenti
- Prerequisiti per la registrazione ARN della sessione IAM
- Fase 1: Creare il ruolo IAM che le istanze locali assumeranno
- Passaggio 2: generare credenziali temporanee per una singola istanza utilizzando AWS STS
- Passaggio 3: aggiungere un file di configurazione all'istanza locale
- Fase 4: Preparare un'istanza locale per le distribuzioni CodeDeploy
- Passaggio 5: registrare l'istanza locale con CodeDeploy
- Passaggio 6: assegna un tag all'istanza locale
- Passaggio 7: distribuisci le revisioni dell'applicazione nell'istanza locale
- Fase 8: Tieni traccia delle distribuzioni sull'istanza locale
Prerequisiti per la registrazione ARN della sessione IAM
Oltre ai prerequisiti elencati in Prerequisiti per la configurazione di un'istanza locale, devono essere soddisfatti i seguenti requisiti aggiuntivi:
Autorizzazioni IAM
All'identità IAM utilizzata per registrare un'istanza locale devono essere concesse le autorizzazioni per eseguire operazioni. CodeDeploy Assicurati che la policy AWSCodeDeployFullAccessgestita sia collegata all'identità IAM. Per informazioni, consulta le policy AWS gestite nella Guida per l'utente IAM.
Sistema per aggiornare credenziali temporanee
Se utilizzi un ARN della sessione IAM per registrare istanze locali, è necessario disporre di un sistema per aggiornare periodicamente le credenziali temporanee. Le credenziali temporanee scadono dopo un'ora o prima se viene specificato un periodo di tempo più breve quando le credenziali vengono generate. Sono disponibili due metodi per aggiornare le credenziali:
-
Metodo 1: utilizzare il sistema di identità e autenticazione operante nella rete aziendale con uno script CRON che effettua periodicamente il polling del sistema di identità e autenticazione e che copia le credenziali di sessione più recenti nell'istanza. Ciò consente di integrare la struttura di autenticazione e identità AWS senza dover apportare modifiche all' CodeDeploy agente o al servizio per supportare i tipi di autenticazione utilizzati nell'organizzazione.
-
Metodo 2: esegui periodicamente un processo CRON sull'istanza per richiamare l' AWS STS AssumeRoleazione e scrivere le credenziali della sessione in un file a cui l' CodeDeploy agente può accedere. Questo metodo richiede ancora l'utilizzo di un utente IAM e la copia delle credenziali nell'istanza locale, ma è possibile riutilizzare lo stesso utente e le stesse credenziali IAM all'interno del parco istanze locali.
Nota
Indipendentemente dal fatto che si utilizzi il metodo 1 o 2, è necessario impostare un processo per riavviare l' CodeDeploy agente dopo l'aggiornamento delle credenziali della sessione temporanea in modo che le nuove credenziali abbiano effetto.
Per informazioni sulla creazione e l'utilizzo AWS STS delle credenziali, consulta AWS Security Token Service API Reference e Utilizzo delle credenziali di sicurezza temporanee per richiedere l'accesso alle risorse. AWS
Fase 1: Creare il ruolo IAM che le istanze locali assumeranno
Puoi utilizzare la console IAM AWS CLI o la console IAM per creare un ruolo IAM che verrà utilizzato dalle istanze locali per l'autenticazione e l'interazione. CodeDeploy
È sufficiente creare un singolo ruolo IAM. Ognuna delle istanze locali può assumere questo ruolo per recuperare le credenziali di sicurezza temporanee che forniscono le autorizzazioni concesse a questo ruolo.
Il ruolo che crei richiederà le seguenti autorizzazioni per accedere ai file necessari per installare l'agente: CodeDeploy
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
Ti consigliamo di limitare questa politica solo ai bucket Amazon S3 a cui deve accedere l'istanza locale. Se limiti questa politica, assicurati di consentire l'accesso ai bucket Amazon S3 che contengono l'agente. CodeDeploy In caso contrario, potrebbe verificarsi un errore ogni volta che l' CodeDeploy agente viene installato o aggiornato sull'istanza locale. Per informazioni sul controllo dell'accesso ai bucket Amazon S3, consulta Gestione delle autorizzazioni di accesso alle risorse Amazon S3.
Per creare il ruolo IAM
-
Chiamare il comando create-role utilizzando l'opzione
--role-name
per specificare un nome per il ruolo IAM (ad esempio,CodeDeployInstanceRole
) e l'opzione--assume-role-policy-document
per fornire le autorizzazioni.Quando si crea il ruolo IAM per questa istanza, è possibile denominarlo
CodeDeployInstanceRole
e includere le autorizzazioni richieste in un file denominatoCodeDeployRolePolicy.json
:aws iam create-role --role-name CodeDeployInstanceRole --assume-role-policy-document file://CodeDeployRolePolicy.json
-
Nell'output della chiamata al comando create-role, prendere nota del valore del campo ARN. Per esempio:
arn:aws:iam::123456789012:role/CodeDeployInstanceRole
Avrai bisogno del ruolo ARN quando utilizzi l' AWS STS AssumeRoleAPI per generare credenziali a breve termine per ogni istanza.
Per ulteriori informazioni sulla creazione di ruoli IAM, consulta Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio nella Guida per l'utente IAM.
Per informazioni sull'assegnazione delle autorizzazioni a un ruolo esistente, consulta put-role-policyCommand Reference.AWS CLI
Passaggio 2: generare credenziali temporanee per una singola istanza utilizzando AWS STS
Prima di generare le credenziali temporanee che verranno utilizzate per registrare un'istanza locale, occorre creare o scegliere l'identità IAM (utente o ruolo) per la quale le credenziali temporanee verranno generate. L'autorizzazione sts:AssumeRole
deve essere inclusa nelle impostazioni della policy per questa identità IAM.
Per informazioni sulla concessione sts:AssumeRole
delle autorizzazioni a un'identità IAM, consulta Creazione di un ruolo per delegare le autorizzazioni a un servizio e. AWS AssumeRole
Sono disponibili due modi per generare le credenziali temporanee:
-
Usa il comando assume-role con. AWS CLI Per esempio:
aws sts assume-role --role-arn arn:aws:iam::
12345ACCOUNT
:role/role-arn
--role-session-namesession-name
Dove:
-
12345ACCOUNT
è il numero di account a 12 cifre per l'organizzazione. -
role-arn
è l'ARN del ruolo che occorre assumere, generato in Fase 1: Creare il ruolo IAM che le istanze locali assumeranno. -
session-name
è il nome da assegnare alla sessione del ruolo che si sta creando.
Nota
Se utilizzi uno script CRON che esegue periodicamente il polling del sistema di identità e autenticazione e copia le credenziali di sessione più recenti sull'istanza (metodo 1 per l'aggiornamento delle credenziali temporanee descritto inPrerequisiti per la registrazione ARN della sessione IAM), puoi invece utilizzare qualsiasi SDK supportato per chiamare. AWS AssumeRole
-
-
Utilizza uno strumento fornito da. AWS
Lo aws-codedeploy-session-helper strumento genera AWS STS credenziali e le scrive in un file inserito nell'istanza. Questo strumento è il più appropriato per il metodo 2 per aggiornare le credenziali temporanee descritte in Prerequisiti per la registrazione ARN della sessione IAM. In questo metodo, lo aws-codedeploy-session-helper strumento viene posizionato su ogni istanza ed esegue il comando utilizzando le autorizzazioni di un utente IAM. Ogni istanza utilizza le stesse credenziali dell'utente IAM in combinazione con questo strumento.
Per ulteriori informazioni, consulta il aws-codedeploy-session-helper
GitHub repository. Nota
Dopo aver creato le credenziali della sessione IAM, posizionarle in qualsiasi posizione dell'istanza locale. Nel passaggio successivo, configurerai l' CodeDeploy agente per accedere alle credenziali in questa posizione.
Prima di continuare, assicurati che il sistema utilizzato per aggiornare periodicamente le credenziali temporanee sia disponibile. Se le credenziali temporanee non vengono aggiornate, le distribuzioni all'istanza locale non vanno a buon fine. Per ulteriori informazioni, consulta "Sistema per aggiornare le credenziali temporanee" in Prerequisiti per la registrazione ARN della sessione IAM.
Passaggio 3: aggiungere un file di configurazione all'istanza locale
Aggiungi un file di configurazione all'istanza locale, utilizzando le autorizzazioni dell'utente root o amministratore. Questo file di configurazione viene utilizzato per dichiarare le credenziali IAM e la AWS regione di destinazione per cui utilizzare. CodeDeploy Il file deve essere aggiunto in una posizione specifica dell'istanza locale. Il file deve includere l'ARN della sessione temporanea IAM, l'ID della chiave segreta e la chiave di accesso segreta e la regione di destinazione AWS .
Per aggiungere un file di configurazione
-
Crea un file denominato
codedeploy.onpremises.yml
(per un'istanza locale di Ubuntu Server o RHEL) oconf.onpremises.yml
(per un'istanza locale di Windows Server) nella seguente posizione sull'istanza locale:-
Per Ubuntu Server:
/etc/codedeploy-agent/conf
-
Per Windows Server:
C:\ProgramData\Amazon\CodeDeploy
-
-
Utilizzate un editor di testo per aggiungere le seguenti informazioni al
codedeploy.onpremises.yml
file (Linux) o alconf.onpremises.yml
file (Windows) appena creato:--- iam_session_arn:
iam-session-arn
aws_credentials_file:credentials-file
region:supported-region
Dove:
-
iam-session-arn
è l'ARN della sessione IAM in cui hai annotato. Passaggio 2: generare credenziali temporanee per una singola istanza utilizzando AWS STS -
credentials-file
è la posizione del file delle credenziali per l'ARN della sessione temporanea, come annotato in Passaggio 2: generare credenziali temporanee per una singola istanza utilizzando AWS STS. -
supported-region
è una delle regioni che CodeDeploy supporta, come elencato in Regione ed endpoint in. Riferimenti generali di AWS
-
Fase 4: Preparare un'istanza locale per le distribuzioni CodeDeploy
Installa e configura il AWS CLI
Installa e configura AWS CLI l'istanza locale. ( AWS CLI Verrà utilizzato per scaricare e installare l' CodeDeploy agente sull'istanza locale.)
-
Per installare l' AWS CLI istanza locale, segui le istruzioni riportate nella Guida per l'utente AWS CLI nella Guida per l'AWS Command Line Interface utente.
Nota
CodeDeploy i comandi per lavorare con le istanze locali sono diventati disponibili nella versione 1.7.19 di. AWS CLI Se hai una versione di quella AWS CLI già installata, puoi verificarne la versione chiamando. aws --version
-
Per configurare l' AWS CLI istanza locale, segui le istruzioni in Configurazione della istanza locale nella Guida AWS CLI per l'AWS Command Line Interface utente.
Importante
Durante la configurazione AWS CLI (ad esempio, chiamando il aws configure comando), assicurati di specificare l'ID della chiave segreta e la chiave di accesso segreta di un utente IAM che disponga almeno delle autorizzazioni descritte in. Prerequisiti per la registrazione ARN della sessione IAM
Impostazione della variabile di ambiente AWS_REGION (solo server Ubuntu e RHEL)
Se non utilizzi Ubuntu Server o RHEL sulla tua istanza locale, salta questo passaggio e vai direttamente a «Installa l'agente». CodeDeploy
Installa l' CodeDeploy agente su un'istanza locale di Ubuntu Server o RHEL e abilita l'istanza ad aggiornare l' CodeDeploy agente ogni volta che diventa disponibile una nuova versione. A tale scopo, impostate la variabile di AWS_REGION
ambiente sull'istanza sull'identificatore di una delle regioni supportate da. CodeDeploy Si consiglia di impostare il valore sulla regione in cui si trovano le CodeDeploy applicazioni, i gruppi di distribuzione e le revisioni delle applicazioni (ad esempio,us-west-2
). Per un elenco delle regioni, consulta Regione ed endpoint in. Riferimenti generali di AWS
Per impostare la variabile di ambiente, esegui la chiamata seguente dal terminale:
export AWS_REGION=
supported-region
In cui supported-region
è l'identificatore della regione (ad esempio, us-west-2
).
Installa l'agente CodeDeploy
-
Per un'istanza locale di Ubuntu Server, segui le istruzioni riportate inInstalla l' CodeDeploy agente per Ubuntu Server, quindi torna a questa pagina.
-
Per un'istanza RHEL locale, segui le istruzioni riportate inInstalla l' CodeDeploy agente per Amazon Linux oppure RHEL, quindi torna a questa pagina.
-
Per un'istanza locale di Windows Server, segui le istruzioni riportate e torna a questa pagina. Installa l' CodeDeploy agente per Windows Server
Passaggio 5: registrare l'istanza locale con CodeDeploy
Le istruzioni in questa fase presumono che la registrazione dell'istanza locale venga eseguita dall'istanza locale stessa. È possibile registrare un'istanza locale da un dispositivo o un'istanza separato su cui è AWS CLI installata e configurata.
Utilizza il AWS CLI per registrare l'istanza locale CodeDeploy in modo che possa essere utilizzata nelle distribuzioni.
Prima di poter utilizzare AWS CLI, è necessario l'ARN delle credenziali di sessione temporanea in cui sono state create. Passaggio 3: aggiungere un file di configurazione all'istanza locale Ad esempio, per un'istanza identificata come AssetTag12010298EX
:
arn:sts:iam::123456789012:assumed-role/CodeDeployInstanceRole/AssetTag12010298EX
Chiama il comando register-on-premises-instance, specificando:
-
Un nome che identifica in modo univoco l'istanza locale (con l'opzione
--instance-name
).Importante
Per identificare più facilmente l'istanza locale, soprattutto per scopi di debug, ti consigliamo di specificare un nome mappato ad alcune caratteristiche univoche dell'istanza locale (ad esempio, session-name delle credenziali STS e il numero di serie o un identificatore di asset interno, se applicabile). Se specificate un indirizzo MAC come nome, tenete presente che gli indirizzi MAC contengono caratteri CodeDeploy non consentiti, come i due punti (:). Per un elenco dei caratteri consentiti, consulta CodeDeploy quote.
-
L'ARN della sessione IAM impostata per autenticare più istanze locali in Fase 1: Creare il ruolo IAM che le istanze locali assumeranno.
Per esempio:
aws deploy register-on-premises-instance --instance-name
name-of-instance
--iam-session-arn arn:aws:sts::account-id
:assumed-role/role-to-assume
/session-name
Dove:
-
name-of-instance
è il nome che usi per identificare l'istanza locale, ad esempio.AssetTag12010298EX
-
account-id
è l'ID account di 12 cifre dell'organizzazione, ad esempio111222333444
. -
role-to-assume
è il nome del ruolo IAM che hai creato per l'istanza, ad esempio.CodeDeployInstanceRole
-
session-name
è il nome del ruolo della sessione specificato in Passaggio 2: generare credenziali temporanee per una singola istanza utilizzando AWS STS.
Passaggio 6: assegna un tag all'istanza locale
Puoi utilizzare la AWS CLI o la CodeDeploy console per etichettare l'istanza locale. (CodeDeployutilizza i tag delle istanze locali per identificare gli obiettivi di distribuzione durante una distribuzione.)
Per applicare tag all'istanza locale (CLI)
-
Chiama il comando add-tags-to-on-premises-instances, specificando:
-
Il nome che identifica in modo univoco l'istanza locale (con l'opzione
--instance-names
). -
Il nome della chiave tag e del valore tag dell'istanza locale che si desidera utilizzare (con l'opzione
--tags
). È necessario specificare sia un nome che un valore. CodeDeploy non consente tag di istanza locali con solo valori.Per esempio:
aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
-
Per applicare tag all'istanza locale (console)
Accedi AWS Management Console e apri la CodeDeploy console all'indirizzo https://console.aws.amazon.com/codedeploy
. Nota
Accedi con lo stesso utente che hai configuratoGuida introduttiva con CodeDeploy.
Nel riquadro di navigazione, espandi Deploy e scegli Istanze locali.
-
Nell'elenco delle istanze locali, scegliere il nome dell'istanza locale a cui desideri applicare tag.
-
Nell'elenco di tag, selezionare o immettere la chiave tag e il valore tag desiderati. Dopo aver immesso la chiave tag e il valore tag, viene visualizzata un'altra riga. È possibile ripetere questa operazione fino a 10 tag. Per rimuovere un tag, scegli Remove (Rimuovi).
-
Dopo aver aggiunto i tag, scegliere Update Tags (Aggiorna tag).
Passaggio 7: distribuisci le revisioni dell'applicazione nell'istanza locale
È ora possibile distribuire le revisioni dell'applicazione all'istanza locale registrata e contrassegnata.
Distribuisci le revisioni delle applicazioni sulle istanze locali in un modo simile alla distribuzione delle revisioni delle applicazioni sulle istanze Amazon EC2. Per istruzioni, consulta Crea una distribuzione con CodeDeploy. Queste istruzioni includono un link ai prerequisiti, inclusa la creazione di un'applicazione, la creazione di un gruppo di distribuzione e la preparazione di una revisione dell'applicazione. Se occorre una semplice revisione dell'applicazione di esempio da distribuire, puoi creare quella descritta in Passaggio 2: creare una revisione di esempio dell'applicazione nel Tutorial: Implementa un'applicazione su un'istanza locale con CodeDeploy (Windows Server, Ubuntu Server o Red Hat Enterprise Linux).
Importante
Se riutilizzi un ruolo di CodeDeploy servizio come parte della creazione di un gruppo di distribuzione destinato alle istanze locali, devi includere Tag:get*
nella parte della politica del ruolo di servizio. Action
Per ulteriori informazioni, consulta Fase 2: Creare un ruolo di servizio per CodeDeploy.
Fase 8: Tieni traccia delle distribuzioni sull'istanza locale
Dopo aver distribuito una revisione dell'applicazione a istanze locali registrate e contrassegnate, puoi monitorare l'avanzamento della distribuzione.
Tieni traccia delle distribuzioni su istanze locali in modo simile al monitoraggio delle distribuzioni su istanze Amazon EC2. Per istruzioni, consultare Visualizza i dettagli CodeDeploy della distribuzione .