Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

Windows タスク用の IAM ロール

Windows のタスク用の IAM ロールでは追加の設定が必要ですが、この設定の多くは Linux コンテナインスタンスのタスク用の IAM ロールを有効にするためのものと似ています。Windows コンテナのタスク用の IAM ロールを有効にするには、以下の要件を満たす必要があります。

  • コンテナインスタンスを起動する際に、コンテナインスタンスのユーザーデータスクリプトの -EnableTaskIAMRole オプションを設定して、この機能を有効にする必要があります。以下に例を示します。

    <powershell> Import-Module ECSTools Initialize-ECSAgent -Cluster 'windows' -EnableTaskIAMRole </powershell>
  • タスク用の IAM ロールコンテナのブートストラップスクリプト に提供されているネットワーキングコマンドを使用してコンテナをブートストラップする必要があります。

  • タスク用の IAM ロールとポリシーを作成する必要があります。詳細については、「タスク用の IAM ロールとポリシーの作成」を参照してください。

  • コンテナでは、タスク用の IAM ロールをサポートする AWS SDK を使用する必要があります。詳細については、「サポートされる AWS SDK の使用」を参照してください。

  • タスク用に作成した IAM ロールを、タスク定義の登録時に指定する必要があります。または、タスクの実行時にオーバーライドとして指定する必要があります。詳細については、「タスク用の IAM ロールを指定する」を参照してください。

  • タスク認証情報プロバイダーの IAM ロールでは、コンテナインスタンスのポート 80 を使用します。したがって、コンテナインスタンスでタスク用の IAM ロールを有効にする場合、どのポートマッピングでもホストポートとしてポート 80 をコンテナで使用することはできません。コンテナをポート 80 で公開するには、負荷分散を使用するサービスをコンテナ用に設定することをお勧めします。ロードバランサーでポート 80 を使用すると、トラフィックをコンテナインスタンスの別のホストポートにルーティングできます。詳細については、「サービスロードバランシング」を参照してください。

タスク用の IAM ロールコンテナのブートストラップスクリプト


# Copyright 2014-2016, 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 # # # # 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-WMIObject -Class Win32_IP4RouteTable | Where { $_.Destination -eq '' -and $_.Mask -eq '' } | Sort-Object Metric1 | Select NextHop).NextHop $ifIndex = (Get-NetAdapter -InterfaceDescription "Hyper-V Virtual Ethernet*" | Sort-Object | Select ifIndex).ifIndex New-NetRoute -DestinationPrefix -InterfaceIndex $ifIndex -NextHop $gateway