Utilizzo gMSA per i Linux container su Fargate - 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à.

Utilizzo gMSA per i Linux container su Fargate

Amazon ECS supporta l'autenticazione Active Directory per contenitori Linux su Fargate tramite un tipo speciale di account di servizio chiamato Managed Service Account di 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

Considerate quanto segue prima di utilizzarli gMSA per i Linux contenitori su Fargate:

  • È necessario utilizzare la versione 1.4 o successiva della piattaforma.

  • 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 perWindows. Per ulteriori informazioni, consulta Installazione degli strumenti di amministrazione Active Directory.

  • È necessario utilizzare la modalità domainless gMSA.

    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. Il CredSpec file viene generato e quindi archiviato 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 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.

  • Disponi di un gMSA account esistente in Active Directory e di un utente che dispone dell'autorizzazione per accedere all'account del gMSA servizio. Per ulteriori informazioni, consulta Creazione di un utente Active Directory per gMSA senza dominio.

  • Hai un bucket Amazon S3. Per ulteriori informazioni, consulta Creare un 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 utilizzi domainlessgMSA, il contenitore non viene aggiunto al dominio. Le altre applicazioni eseguite sul contenitore non possono utilizzare le credenziali per accedere al dominio. Le attività che utilizzano un dominio diverso possono essere eseguite sullo stesso contenitore. Fornisci il nome di un segreto AWS Secrets Manager 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.

    1. Configura un utente nel tuo dominio Active Directory. L'utente di Active Directory deve disporre dell'autorizzazione per accedere all'account di gMSA servizio utilizzato nelle attività.

    2. Disponi di un VPC e delle sottoreti in grado di risolvere il nome di dominio Active Directory. Configura il VPC con opzioni DHCP con il nome di dominio che punta al nome del servizio Active Directory. Per informazioni su come configurare le opzioni DHCP per un VPC, consulta Work with DHCP option sets nella Amazon Virtual Private Cloud User Guide.

    3. Crea un account segreto in. AWS Secrets Manager

    4. Crea il file con le specifiche delle credenziali.

Configurazione di autorizzazioni e segreti

Esegui i passaggi seguenti una volta per ogni applicazione e ogni definizione di 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.

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

  2. Dopo aver creato l'utente di Active Directory, crea un account segreto in AWS Secrets Manager. Per ulteriori informazioni, consulta Creazione di un segreto AWS Secrets Manager.

  3. Inserisci il nome utente, la password e il dominio dell'utente nelle coppie chiave-valore JSON denominate rispettivamente username, password e domainName.

    {"username":"username","password":"passw0rd", "domainName":"example.com"}
  4. Inoltre, devi aggiungere le autorizzazioni seguenti come policy inline al ruolo di esecuzione dell'attività del ruolo IAM. In questo modo il daemon credentials-fetcher accede al segreto di Secrets Manager. Sostituisci l'esempio MySecret con il nome della risorsa Amazon (ARN) del segreto nell'elenco Resource.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:aws-region:111122223333:secret:MySecret" ] } ] }
    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.

  5. 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 credentialSpecs della 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.

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

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" } } } }
Creare un file CredSpec e caricarlo su un 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 sul sito Web Microsoft Learn.

Dopo aver creato il file delle specifiche delle credenziali, caricalo in 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 amzn-s3-demo-bucket 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à.

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