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 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-WMIObject -Class Win32_IP4RouteTable | Where { $_.Destination -eq '0.0.0.0' -and $_.Mask -eq '0.0.0.0' } | Sort-Object Metric1 | 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