Scopri come usare i contenitori g MSAs for EC2 Windows per Amazon ECS - Amazon Elastic Container Service

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à.

Scopri come usare i contenitori g MSAs for EC2 Windows per Amazon ECS

Amazon ECS supporta l'autenticazione di Active Directory per i container Windows tramite un tipo speciale di account di servizio denominato account di servizio gestito di gruppo (gMSA, group Managed Service Account).

Le applicazioni di rete basate su Windows, ad esempio le applicazioni .NET, utilizzano spesso Active Directory per facilitare l'autenticazione e la gestione delle autorizzazioni tra utenti e servizi. Gli sviluppatori di solito progettano le loro applicazioni per l'integrazione con Active Directory e l'esecuzione su server aggiunti al dominio a tale scopo. Poiché i container Windows non possono essere aggiunti al dominio, è necessario configurare un container Windows per l'esecuzione con account gMSA.

Un container Windows in esecuzione con gMSA si affida all'istanza EC2 Amazon host per recuperare le credenziali gMSA dal controller di dominio Active Directory e fornirle all'istanza del contenitore. Per ulteriori informazioni, consulta Create g for Windows containers. MSAs

Nota

Questa funzione non è supportata per i container Windows su Fargate.

Considerazioni

Quando si utilizzano contenitori g MSAs per Windows, è necessario considerare quanto segue:

  • Quando utilizzi l'AMI Windows Server 2016 Full ottimizzata per Amazon ECS per le istanze di container, il nome host del container deve essere uguale al nome dell'account gMSA definito nel file delle specifiche delle credenziali. Per specificare un nome host per un container, usa il parametro di definizione del container hostname. Per ulteriori informazioni, consulta Impostazioni di rete.

  • Hai scelto tra senza dominio gMSAe unendo ogni istanza a un singolo dominio. Utilizzando domainless gMSA, l'istanza del contenitore non è aggiunta al dominio, le altre applicazioni sull'istanza non possono utilizzare le credenziali per accedere al dominio e le attività che si uniscono a domini diversi possono essere eseguite sulla stessa istanza.

    Quindi, scegli l'archiviazione dei dati per CredSpec e, facoltativamente, per le credenziali utente di Active Directory per la modalità domainless gMSA.

    Amazon ECS utilizza un file di specifiche delle credenziali di Active Directory (CredSpec). Questo file contiene gMSA metadati utilizzati per propagare il gMSA contesto dell'account nel contenitore. Tu generi il CredSpec file e poi lo archivia in uno dei CredSpec opzioni di archiviazione nella tabella seguente, specifiche del sistema operativo delle istanze del contenitore. Per utilizzare il metodo senza dominio, è disponibile una sezione facoltativa in CredSpec il file può specificare le credenziali in uno dei domainless user credentialsopzioni di archiviazione nella tabella seguente, specifiche del sistema operativo delle istanze del contenitore.

    Posizione di archiviazione Linux Windows
    Amazon Simple Storage Service CredSpec CredSpec
    AWS Secrets Manager credenziali utente senza dominio credenziali utente senza dominio
    Amazon EC2 Systems Manager Parameter Store CredSpec CredSpec, credenziali utente senza dominio
    File locale N/D CredSpec

Prerequisiti

Prima di utilizzare il gMSA per la funzionalità dei container Windows con Amazon ECS, assicurati di completare quanto segue:

  • Configura un dominio Active Directory con le risorse a cui desideri che i tuoi container accedano. Amazon ECS supporta le configurazioni seguenti:

    • Un AWS Directory Service Active Directory. AWS 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-premise. Devi assicurarti che l'istanza di container Linux di Amazon ECS possa essere aggiunta al dominio. Per ulteriori informazioni, consulta AWS Direct Connect.

  • Ne hai già uno gMSA account in Active Directory. Per ulteriori informazioni, consulta Creare contenitori g MSAs per Windows.

  • Hai scelto di utilizzare la modalità domainless gMSAoppure l'istanza del contenitore Amazon ECS Windows che ospita l'attività Amazon ECS deve appartenere al dominio Active Directory ed essere membro del gruppo di sicurezza Active Directory che ha accesso all'account gMSA.

    Utilizzando domainless gMSA, l'istanza del contenitore non è aggiunta al dominio, le altre applicazioni sull'istanza non possono utilizzare le credenziali per accedere al dominio e le attività che si uniscono a domini diversi possono essere eseguite sulla stessa istanza.

  • Hai aggiunto le autorizzazioni IAM richieste. Le autorizzazioni richieste dipendono dai metodi scelti per le credenziali iniziali e per l'archiviazione della specifica delle credenziali:

    • Se utilizzi domainless gMSAper le credenziali iniziali, AWS Secrets Manager sono richieste le autorizzazioni IAM per il ruolo dell' EC2istanza Amazon.

    • Se memorizzi la specifica delle credenziali in SSM Parameter Store, le autorizzazioni IAM per Amazon EC2 Systems Manager Parameter Store sono necessarie per il ruolo di esecuzione dell'attività.

    • Se archivi la specifica delle credenziali in Amazon S3, le autorizzazioni IAM per Amazon Simple Storage Service sono necessarie per il ruolo di esecuzione delle attività.

Configurazione gMSA per contenitori Windows su Amazon ECS

Per configurare gMSA per Windows Containers su Amazon ECS, puoi seguire il tutorial completo che include la configurazione dei prerequisiti. Utilizzo di contenitori Amazon ECS Windows con sistema domainless gMSA utilizzando il AWS CLI

Le seguenti sezioni trattano CredSpec configurazione in dettaglio.

Esempio CredSpec

Amazon ECS utilizza un file di specifiche delle credenziali che contiene gMSA metadati utilizzati per propagare il gMSA contesto dell'account nel contenitore di Windows. Puoi generare il file di specifiche delle credenziali e farvi riferimento nel campo credentialSpec della definizione di attività. Il file delle specifiche delle credenziali non contiene segreti.

Di seguito è riportato un file di specifiche delle credenziali di esempio:

{ "CmsPlugins": [ "ActiveDirectory" ], "DomainJoinConfig": { "Sid": "S-1-5-21-2554468230-2647958158-2204241789", "MachineAccountName": "WebApp01", "Guid": "8665abd4-e947-4dd0-9a51-f8254943c90b", "DnsTreeName": "contoso.com", "DnsName": "contoso.com", "NetBiosName": "contoso" }, "ActiveDirectoryConfig": { "GroupManagedServiceAccounts": [ { "Name": "WebApp01", "Scope": "contoso.com" } ] } }

Senza dominio gMSA setup

Consigliamo la modalità domainless gMSA invece di unire le istanze del contenitore a un singolo dominio. Utilizzando domainless gMSA, l'istanza del contenitore non è aggiunta al dominio, le altre applicazioni sull'istanza non possono utilizzare le credenziali per accedere al dominio e le attività che si uniscono a domini diversi possono essere eseguite sulla stessa istanza.

  1. Prima di caricare il CredSpec a una delle opzioni di archiviazione, aggiungi informazioni al CredSpec con l'ARN del segreto in Secrets Manager o SSM Parameter Store. Per ulteriori informazioni, vedi lo use case Additional Credential Spec Configuration for non-domain-joined Container Host nel sito Web Microsoft Learn.

    Senza dominio gMSA formato delle credenziali

    Di seguito è riportato il formato JSON per i sistemi senza dominio gMSA credenziali per Active Directory. Archivia le credenziali in Secrets Manager o SSM Parameter Store.

    { "username":"WebApp01", "password":"Test123!", "domainName":"contoso.com" }
  2. Aggiungi le seguenti informazioni al CredSpec file all'interno diActiveDirectoryConfig. Sostituisci l'ARN con il segreto in Secrets Manager o SSM Parameter Store.

    Tieni presente che il valore PluginGUID deve corrispondere al GUID nel seguente frammento di codice esemplificativo ed è obbligatorio.

    "HostAccountConfig": { "PortableCcgVersion": "1", "PluginGUID": "{859E1386-BDB4-49E8-85C7-3070B13920E1}", "PluginInput": "{\"credentialArn\": \"arn:aws:secretsmanager:aws-region:111122223333:secret:gmsa-plugin-input\"}" }

    Puoi anche usare un segreto nell'archivio parametri SSM con l'ARN in questo formato: \"arn:aws:ssm:aws-region:111122223333:parameter/gmsa-plugin-input\".

  3. Dopo aver modificato il CredSpec il file dovrebbe essere simile al seguente esempio:

    { "CmsPlugins": [ "ActiveDirectory" ], "DomainJoinConfig": { "Sid": "S-1-5-21-4066351383-705263209-1606769140", "MachineAccountName": "WebApp01", "Guid": "ac822f13-583e-49f7-aa7b-284f9a8c97b6", "DnsTreeName": "contoso", "DnsName": "contoso", "NetBiosName": "contoso" }, "ActiveDirectoryConfig": { "GroupManagedServiceAccounts": [ { "Name": "WebApp01", "Scope": "contoso" }, { "Name": "WebApp01", "Scope": "contoso" } ], "HostAccountConfig": { "PortableCcgVersion": "1", "PluginGUID": "{859E1386-BDB4-49E8-85C7-3070B13920E1}", "PluginInput": "{\"credentialArn\": \"arn:aws:secretsmanager:aws-region:111122223333:secret:gmsa-plugin-input\"}" } } }

Riferimento a un file di specifiche delle credenziali in una definizione di attività

Amazon ECS supporta i seguenti modi per fare riferimento al percorso del file nel campo credentialSpecs di una definizione di attività. Per ognuna di queste opzioni, puoi fornire credentialspec: odomainlesscredentialspec:, a seconda che tu stia unendo le istanze del contenitore a un singolo dominio o utilizzando domainless gMSA, rispettivamente.

Bucket Amazon S3

Aggiungi le specifiche delle credenziali a un bucket Amazon S3 e quindi fai riferimento all'Amazon Resource Name (ARN) del bucket Amazon S3 nel campo credentialSpecs della definizione di attività.

{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "credentialSpecs": [ "credentialspecdomainless:arn:aws:s3:::${BucketName}/${ObjectName}" ], ... } ], ... }

Devi inoltre aggiungere le seguenti autorizzazioni come policy in linea al ruolo IAM di esecuzione di processi Amazon ECS per consentire ai processi l'accesso al bucket Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::{bucket_name}", "arn:aws:s3:::{bucket_name}/{object}" ] } ] }

Parametro dell'archivio parametri di SSM

Aggiungi le specifiche delle credenziali a un parametro dell'archivio parametri di SSM e quindi fai riferimento all'Amazon Resource Name (ARN) del parametro dell'archivio parametri di SSM nel campo credentialSpecs della definizione di attività.

{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "credentialSpecs": [ "credentialspecdomainless:arn:aws:ssm:region:111122223333:parameter/parameter_name" ], ... } ], ... }

È inoltre necessario aggiungere le seguenti autorizzazioni come policy in linea al ruolo IAM di esecuzione del processo di Amazon ECS per consentire ai processi l'accesso al parametro dell'archivio parametri di SSM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:region:111122223333:parameter/parameter_name" ] } ] }

File locale

Con i dettagli delle specifiche delle credenziali in un file locale, fai riferimento al percorso del file nel campo credentialSpecs della definizione di attività. Il percorso del file a cui si fa riferimento deve essere relativo alla directory C:\ProgramData\Docker\CredentialSpecs e utilizzare la barra rovesciata ("\") come separatore del percorso del file.

{ "family": "", "executionRoleArn": "", "containerDefinitions": [ { "name": "", ... "credentialSpecs": [ "credentialspec:file://CredentialSpecDir\CredentialSpecFile.json" ], ... } ], ... }