Roles de IAM para las tareas de Windows - Amazon Elastic Container Service

Roles de IAM para las tareas de Windows

Los roles de IAM para las tareas con características de Windows requieren una configuración adicional, pero gran parte de esta configuración es similar a la habilitación de los roles de IAM para las tareas en instancias de contenedor de Linux. A fin de habilitar los roles de IAM para las tareas de contenedores de Windows se deben cumplir los siguientes requisitos.

  • Cuando se lanzan las instancias de contenedor, se debe establecer la opción -EnableTaskIAMRole en el script de datos de usuario de las instancias de contenedor. El rol EnableTaskIAMRole activa la característica de roles de IAM de tareas para las tareas. Por ejemplo:

    <powershell> Import-Module ECSTools Initialize-ECSAgent -Cluster 'windows' -EnableTaskIAMRole </powershell>
  • Debe arrancar el contenedor con los comandos de redes que se proporcionan en Roles de IAM para el script del proceso de arranque de contenedores de tareas.

  • Debe crear un rol y una política de IAM para las tareas. Para obtener más información, consulte Creación de un rol y una política de IAM para las tareas.

  • El contenedor debe utilizar un SDK de AWS que admita roles de IAM para las tareas. Para obtener más información, consulte Uso de un SDK de AWS soportado.

  • Debe especificar el rol de IAM que creó para las tareas al registrar la definición de tareas o como anulación al ejecutar la tarea. Para obtener más información, consulte Especificación de un rol de IAM para las tareas.

  • Los roles de IAM para el proveedor de credenciales de tareas utilizan el puerto 80 en la instancia de contenedor. Por lo tanto, si habilita roles de IAM para las tareas en la instancia de contenedor, los contenedores no pueden utilizar el puerto 80 como puerto del host en ningún mapeo de puertos. Para exponer los contenedores en el puerto 80, recomendamos configurar un servicio para ellos que utilice el balanceo de carga. Puede utilizar el puerto 80 en el balanceador de carga. De este modo, el tráfico se puede dirigir a otro puerto del host en las instancias de contenedor. Para obtener más información, consulte Equilibrio de carga de los servicios.

  • Si se reinicia la instancia de Windows, debe eliminar la interfaz de proxy y volver a inicializar el agente de contenedor de Amazon ECS para que se vuelva a activar el proxy de credenciales.

Roles de IAM para el script del proceso de arranque de contenedores de tareas

Antes de que los contenedores puedan obtener acceso al proxy de credenciales en la instancia de contenedor para obtener credenciales, el contenedor se debe arrancar con los comandos de redes requeridos. El siguiente script de ejemplo de código se debe ejecutar en los contenedores cuando se inician.

nota

No es necesario ejecutar este script cuando se utiliza el modo de red awsvpc en Windows.

# Copyright 2014-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You may # not use this file except in compliance with the License. A copy of the # License is located at # # http://aws.amazon.com/apache2.0/ # # or in the "license" file accompanying this file. This file is distributed # on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either # express or implied. See the License for the specific language governing # permissions and limitations under the License. $gateway = (Get-NetRoute | Where { $_.DestinationPrefix -eq '0.0.0.0/0' } | Sort-Object RouteMetric | Select NextHop).NextHop $ifIndex = (Get-NetAdapter -InterfaceDescription "Hyper-V Virtual Ethernet*" | Sort-Object | Select ifIndex).ifIndex New-NetRoute -DestinationPrefix 169.254.170.2/32 -InterfaceIndex $ifIndex -NextHop $gateway # credentials API New-NetRoute -DestinationPrefix 169.254.169.254/32 -InterfaceIndex $ifIndex -NextHop $gateway # metadata API