Uso de gMSA para contenedores de Windows - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de gMSA para contenedores de Windows

Amazon ECS admite la autenticación de Active Directory para contenedores de Windows a través de un tipo de cuenta de servicio llamada cuenta de servicio gestionado de grupo (gMSA).

Las aplicaciones de red basadas en Windows, como las aplicaciones.NET, suelen utilizar Active Directory para facilitan la administración de autenticación y autorización entre usuarios y servicios. Los desarrolladores suelen diseñar sus aplicaciones para integrarlas con Active Directory y ejecutarlas en de servidores unidos al dominio para este fin. Dado que los contenedores de Windows no se pueden unir al dominio, debe configurar un contenedor de Windows para que se ejecute con gMSA.

Un contenedor de Windows que se ejecuta con gMSA depende de su host Amazon EC2 para recuperar la instancia de Las credenciales de gMSA del controlador de dominio de Active Directory y proporcionarlas al Instancia de contenedor de. Para obtener más información, consulte Crear gMSA para contenedores de Windows.

Considerations

Se debe tener en cuenta lo siguiente al utilizar gMSA para contenedores de Windows:

  • Cuando se utiliza la función AMI de Windows Server 2016 Full optimizada para Amazon ECS para sus instancias de contenedor, el El nombre de host del contenedor de debe ser el mismo que el nombre de cuenta gMSA definido en el archivo de especificación de credenciales. Para especificar un nombre de host para un contenedor, utilice la hostname parámetro de definición de contenedor. Para obtener más información, ver Configuración de red.

Prerequisites

Los siguientes son requisitos previos para utilizar la característica gMSA para contenedores de Windows con Amazon ECS.

  • Un Active Directory que su Amazon ECS Las instancias de contenedor de Windows pueden unirse a. Amazon ECS admite lo siguiente:

    • AWS Directory Service, que es un AWS Active Directory administrado por alojado en Amazon EC2. Para más información, consulte Introducción a AWS Managed Microsoft AD en el AWS Directory Service Administration Guide.

    • Active Directory local, siempre que el Amazon ECS Contenedor de Windows La instancia de puede unirse al dominio. Para obtener más información, consulte Conexión directa de AWS.

  • Una cuenta de gMSA existente en Active Directory. Para obtener más información, consulte Crear gMSA para contenedores de Windows.

  • El Amazon ECS Instancia de contenedor de Windows que aloja el Amazon ECS la tarea debe ser un dominio se ha unido a Active Directory y es miembro de la seguridad de Active Directory que tiene acceso a la cuenta de gMSA.

Configuración de contenedores de Windows compatibles con gMSA en Amazon ECS

Amazon ECS utiliza un archivo de especificación de credenciales que contiene los metadatos gMSA utilizados para propagar el contexto de la cuenta de gMSA al contenedor de Windows. Puede generar la especificación de credenciales y haz referencia a él en el paso dockerSecurityOptions en su tarea definición. El archivo de especificación de credenciales no contiene ningún secreto.

A continuación se muestra un ejemplo de archivo de especificación de credenciales:

{ "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" } ] } }

Referencia a un archivo de especificación de credenciales en una definición de tarea

Amazon ECS admite las siguientes formas de hacer referencia al archivo de especificación de credenciales en el dockerSecurityOptions de una definición de tarea.

Amazon S3 Cubo

Añada la especificación de credenciales a un Amazon S3 y, a continuación, haga referencia al bucket de Amazon Nombre de recurso (ARN) de la Amazon S3 del bucket de en la dockerSecurityOptions de la definición de tarea.

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

También debe añadir los siguientes permisos como una política insertada a la Amazon ECS ejecución de tareas IAM para dar a sus tareas acceso a la función de Amazon S3 del bucket de.

{ "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}" ] } ] }

SSM Parámetro del almacén de parámetros

Añada la especificación de credenciales a un SSM Parameter Store (Almacén de parámetros) y, a continuación, hacer referencia al nombre de recurso de Amazon (ARN) de la SSM Parámetro del almacén de parámetros en el dockerSecurityOptions de la definición de tarea.

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

También debe añadir los siguientes permisos como una política insertada a la Amazon ECS ejecución de tareas IAM para dar a sus tareas acceso a la función de SSM Almacén de parámetros Parámetro.

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

Archivo local

Con los detalles de especificación de credenciales en un archivo local, haga referencia a la ruta del archivo en el dockerSecurityOptions de la definición de tarea.

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