タスク用の Windows IAM ロール - Amazon Elastic Container Service

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

タスク用の 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 を使用できます。これにより、コンテナインスタンス上の別のホストポートにトラフィックをルーティングできます。詳細については、「サービスの負荷分散」を参照してください。

  • Windows インスタンスが再起動された場合は、プロキシインターフェイスを削除して、Amazon ECS コンテナーエージェントを再度初期化し、認証情報プロキシを元に戻す必要があります。

タスクコンテナのブートストラップスクリプト用の 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-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