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à.
Utilizzo del gMSA per i container Linux su Fargate
Amazon ECS supporta l'autenticazione di Active Directory per i container Linux su Fargate tramite un tipo speciale di account di servizio chiamato account di servizio gestito del gruppo (gMSA).
Le applicazioni di rete basate su Linux, ad esempio le applicazioni .NET Core, possono utilizzare Active Directory per facilitare l'autenticazione e la gestione delle autorizzazioni tra utenti e servizi. Puoi utilizzare questa funzionalità progettando applicazioni che si integrano con Active Directory e vengono eseguite su server aggiunti al dominio. Tuttavia, poiché i container Linux non possono essere aggiunti a un dominio, è necessario configurare un container Linux da eseguire con gMSA.
Considerazioni
Prima di utilizzare il gMSA per i container Linux su Fargate, valutare quanto segue:
-
È necessario eseguire la versione della piattaforma 1.4 o successiva.
-
Potrebbe essere necessario un computer Windows aggiunto al dominio per completare i prerequisiti. Ad esempio, potresti aver bisogno di un computer Windows aggiunto al dominio per creare gMSA in Active Directory con PowerShell. Gli PowerShell strumenti RSAT Active Director sono disponibili solo per. Windows Per ulteriori informazioni, consulta Installazione degli strumenti di amministrazione Active Directory.
-
È necessario utilizzare un gMSA senza dominio.
Amazon ECS utilizza un file di specifica delle credenziali di Active Directory (CredSpec). Questo file contiene i metadati gMSA utilizzati per propagare il contesto dell'account gMSA al container. È possibile generare il file CredSpec e poi archiviarlo in un bucket Amazon S3.
-
Un'attività può supportare solo un Active Directory.
Prerequisiti
Prima di utilizzare la funzionalità gMSA per container Linux con Amazon ECS, assicurati di completare le seguenti operazioni:
-
Configura un dominio Active Directory con le risorse a cui desideri che i tuoi container accedano. Amazon ECS supporta le configurazioni seguenti:
-
Un Directory Service Active Directory. Directory Service è un Active Directory AWS gestito ospitato su Amazon EC2. Per ulteriori informazioni, vedere Guida introduttiva a AWS Managed Microsoft AD nella Guida all'AWS Directory Service amministrazione.
-
Una Active Directory on-premises. Devi assicurarti che l'istanza di container Linux di Amazon ECS possa essere aggiunta al dominio. Per ulteriori informazioni, consulta AWS Direct Connect.
-
-
Disponi di un account gMSA esistente in Active Directory e di un utente con l'autorizzazione di accesso all'account di servizio gMSA. Per ulteriori informazioni, consulta Creazione di un utente Active Directory per gMSA senza dominio.
-
Disponi di un bucket Amazon S3. Per ulteriori informazioni, consultare Creating a bucket nella Guida per l'utente di Amazon S3.
Configurazione di container Linux compatibili con gMSA in Amazon ECS
Preparazione dell'infrastruttura
I passaggi seguenti sono considerazioni e configurazioni che vengono eseguite una sola volta.
-
Creazione di un utente Active Directory per gMSA senza dominio
Quando si utilizza un gMSA senza dominio, il container non viene aggiunto al dominio. Le altre applicazioni eseguite sul container non possono utilizzare le credenziali per accedere al dominio. Le attività che utilizzano un dominio diverso possono essere eseguite sullo stesso container. Fornisci il nome di un segreto Gestione dei segreti AWS nel CredSpec file. Il segreto deve contenere un nome utente, una password e un dominio a cui accedere.
Questa funzionalità è simile alla funzionalità gMSA support for non-domain-joined container hosts. Per ulteriori informazioni sulla funzionalità di Windows, consulta Architettura e miglioramenti di gMSA
sul sito Web Microsoft Learn. -
Configurare un utente nel dominio di Active Directory. L'utente di Active Directory deve disporre dell'autorizzazione di accesso all'account di servizio gMSA utilizzato nelle attività.
-
Disponi di un VPC e delle sottoreti in grado di risolvere il nome di dominio Active Directory. Configurare il VPC con opzioni DHCP con il nome di dominio che indirizza al nome del servizio Active Directory. Per informazioni su come configurare le opzioni DHCP per un VPC, consultare Work with DHCP option sets nella Guida per l'utente di Amazon Virtual Private Cloud.
-
Crea un segreto in Gestione dei segreti AWS.
Creare il file di specifica delle credenziali.
-
Configurazione di autorizzazioni e segreti
Eseguire i passaggi descritti di seguito una volta per ogni applicazione e ogni definizione dell'attività. Consigliamo di utilizzare la best practice di concedere il privilegio minimo e limitare le autorizzazioni utilizzate nella policy. In questo modo, ogni attività può leggere solo i segreti di cui ha bisogno.
-
Crea un utente nel dominio di Active Directory. L'utente di Active Directory deve disporre dell'autorizzazione per accedere agli account del servizio di gMSA utilizzati nelle attività.
-
Dopo aver creato l'utente di Active Directory, crea un account segreto in Gestione dei segreti AWS. Per ulteriori informazioni, consulta Creazione di un segreto Gestione dei segreti AWS.
-
Inserisci il nome utente, la password e il dominio dell'utente nelle coppie chiave-valore JSON denominate rispettivamente
username,passwordedomainName.{"username":"username","password":"passw0rd", "domainName":"example.com"} -
Inoltre, devi aggiungere le autorizzazioni seguenti come policy inline al ruolo di esecuzione dell'attività del ruolo IAM. In questo modo il daemon
credentials-fetcheraccede al segreto di Secrets Manager. Sostituisci l'esempioMySecretcon il nome della risorsa Amazon (ARN) del segreto nell'elencoResource.Nota
Se utilizzi la tua chiave KMS per crittografare il tuo segreto, devi aggiungere le autorizzazioni necessarie a questo ruolo e aggiungere questo ruolo alla politica delle AWS KMS chiavi.
-
Aggiungi le specifiche delle credenziali a un bucket Amazon S3. Quindi, fai riferimento al nome della risorsa Amazon (ARN) del bucket Amazon S3 nel campo
credentialSpecsdella definizione di attività.{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "credentialSpecs": [ "credentialspecdomainless:arn:aws:s3:::${BucketName}/${ObjectName}" ], ... } ], ... }Devi aggiungere le seguenti autorizzazioni come policy inline al ruolo IAM di esecuzione delle attività Amazon ECS per consentire alle attività l'accesso al bucket Amazon S3.
File di specifica delle credenziali
Amazon ECS utilizza un file di specifica delle credenziali di Active Directory (CredSpec). Questo file contiene i metadati gMSA utilizzati per propagare il contesto dell'account gMSA al container Linux. Genera il file CredSpec e fai riferimento a esso nel campo credentialSpecs della definizione delle attività. Il file CredSpec non contiene segreti.
Di seguito è riportato un esempio del file CredSpec.
{
"CmsPlugins": [
"ActiveDirectory"
],
"DomainJoinConfig": {
"Sid": "S-1-5-21-2554468230-2647958158-2204241789",
"MachineAccountName": "WebApp01",
"Guid": "8665abd4-e947-4dd0-9a51-f8254943c90b",
"DnsTreeName": "example.com",
"DnsName": "example.com",
"NetBiosName": "example"
},
"ActiveDirectoryConfig": {
"GroupManagedServiceAccounts": [
{
"Name": "WebApp01",
"Scope": "example.com"
}
],
"HostAccountConfig": {
"PortableCcgVersion": "1",
"PluginGUID": "{859E1386-BDB4-49E8-85C7-3070B13920E1}",
"PluginInput": {
"CredentialArn": "arn:aws:secretsmanager:aws-region:111122223333:secret:MySecret"
}
}
}
}
Creazione di CredSpec e caricamento su Amazon S3
Crea un file CredSpec utilizzando il modulo PowerShell CredSpec su un computer Windows che fa parte del dominio. Segui i passaggi descritti in Creazione di una specifica delle credenziali
Dopo aver creato il file di specifica delle credenziali, caricarlo su un bucket Amazon S3. Copia il file CredSpec nel computer o nell'ambiente in cui esegui i comandi AWS CLI .
Esegui il AWS CLI comando seguente per CredSpec caricarlo su Amazon S3. Sostituisci con il nome del bucket Amazon S3. Puoi archiviare il file come oggetto in qualsiasi bucket e posizione, ma devi consentire l'accesso a tale bucket e tale posizione nella policy associata al ruolo di esecuzione dell'attività.amzn-s3-demo-bucket
Per PowerShell, usa il seguente comando:
$Write-S3Object -BucketName "amzn-s3-demo-bucket" -Key "ecs-domainless-gmsa-credspec" -File "gmsa-cred-spec.json"
Il AWS CLI comando seguente utilizza i caratteri di continuazione con barra rovesciata utilizzati dalle shell compatibilish.
$aws s3 cp gmsa-cred-spec.json \ s3://amzn-s3-demo-bucket/ecs-domainless-gmsa-credspec