翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
WorkSpaces ストリーミングインスタンスで実行されるアプリケーションとスクリプトは、 AWS API リクエストに AWS 認証情報を含める必要があります。IAM ロールを作成して、これらの認証情報を管理できます。IAM ロールは、 AWS リソースへのアクセスに使用できる一連のアクセス許可を指定します。ただし、このロールは 1 人のユーザーに一意に関連付けられるわけではありません。代わりに、それを必要とするすべてのユーザーが引き受けることができます。
IAM ロールを WorkSpaces ストリーミングインスタンスに適用できます。ストリーミングインスタンスがロールに切り替える (引き受ける) と、ロールは一時的なセキュリティ認証情報を提供します。アプリケーションまたはスクリプトはこれらの認証情報を使用して、ストリーミングインスタンスで API アクションおよび管理タスクを実行します。WorkSpaces は、一時的な認証情報スイッチを管理します。
内容
WorkSpaces ストリーミングインスタンスで IAM ロールを使用するためのベストプラクティス
WorkSpaces ストリーミングインスタンスで IAM ロールを使用する場合は、以下のプラクティスに従うことをお勧めします。
AWS API アクションとリソースに付与するアクセス許可を制限します。
IAM ポリシーを作成し、WorkSpaces ストリーミングインスタンスに関連付けられた IAM ロールにアタッチするときは、最小特権の原則に従います。 AWS API アクションまたはリソースへのアクセスを必要とするアプリケーションまたはスクリプトを使用する場合は、必要な特定のアクションとリソースを決定します。次に、アプリケーションまたはスクリプトがこれらのアクションのみを実行できるようにするポリシーを作成します。詳細については、「IAM ユーザーガイド」の「Grant Least Privilege」(最小権限を付与する) を参照してください。
WorkSpaces リソースごとに IAM ロールを作成します。
WorkSpaces リソースごとに一意の IAM ロールを作成することは、最小特権の原則に従うプラクティスです。これにより、他のリソースに影響を与えることなく、リソースのアクセス許可を変更することもできます。
認証情報を使用できる場所を制限します。
IAM ポリシーでは、IAM ロールを使用してリソースにアクセスするための条件を定義できます。たとえば、リクエスト元の IP アドレスの範囲を指定する条件を含めることができます。これにより、認証情報が環境外で使用されなくなります。詳細については、IAM ユーザーガイドの「追加セキュリティに対するポリシー条件を使用する」を参照してください。
WorkSpaces ストリーミングインスタンスで使用するために既存の IAM ロールを設定する
このトピックでは、既存の IAM ロールを WorkSpaces で使用できるように設定する方法について説明します。
前提条件
WorkSpaces で使用する IAM ロールは、次の前提条件を満たしている必要があります。
IAM ロールは、WorkSpace ストリーミングインスタンスと同じ Amazon Web Services アカウントに存在する必要があります。
IAM ロールをサービスロールにすることはできません。
IAM ロールにアタッチされた信頼関係ポリシーには、プリンシパルとして WorkSpaces サービスが含まれている必要があります。プリンシパルは、アクションを実行してリソースにアクセスできる AWS のエンティティです。ポリシーには
sts:AssumeRole
アクションも含める必要があります。このポリシー設定は、WorkSpaces を信頼されたエンティティとして定義します。IAM ロールを WorkSpaces に適用する場合、2019 年 9 月 3 日以降にリリースされたバージョンの WorkSpaces エージェントを WorkSpaces で実行する必要があります。IAM ロールを WorkSpaces に適用する場合、同じ日付以降にリリースされたバージョンのエージェントを用いるイメージを WorkSpaces で使用する必要があります。
WorkSpaces サービスプリンシパルが既存の IAM ロールを引き受けるようにするには
以下のステップを実行するには、IAM ロールを一覧表示および更新するために必要なアクセス許可を持つ IAM ユーザーとしてアカウントにサインインする必要があります。必要なアクセス許可がない場合は、お客様の Amazon Web Services アカウント管理者に対し、アカウントでこれらのステップを実行するか、必要なアクセス許可をお客様に付与するかのどちらかを依頼します。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [Roles] (ロール) を選択します。
-
アカウントのロールの一覧で、変更するロールの名前を選択します。
[Trust relationships] タブを選択し、続いて [Edit trust relationship] を選択します。
[Policy Document (ポリシードキュメント)]で、信頼関係ポリシーに
workspaces.amazonaws.com
サービスプリンシパルのsts:AssumeRole
アクションが含まれていることを確認します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "workspaces.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
信頼ポリシーの編集を完了したら、[信頼ポリシーの更新] を選択して変更を保存します。
-
選択した IAM ロールが WorkSpaces コンソールに表示されます。このロールは、ストリーミングインスタンスで API アクションおよび管理タスクを実行するアクセス許可をアプリケーションとスクリプトに付与します。
WorkSpaces ストリーミングインスタンスで使用する IAM ロールを作成する方法
このトピックでは、WorkSpaces で使用する新しい IAM ロールを作成する方法について説明します。
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 ナビゲーションペインで [Roles] (ロール) を選択してから、[Create role] (ロールを作成する) を選択します。
信頼できるエンティティの種類の選択 で、AWS サービス を選択します。
AWS サービスのリストから WorkSpaces を選択します。
「ユースケースの選択」のWorkSpaces — WorkSpaces インスタンスがユーザーに代わって AWS サービスを呼び出すことを許可します」が既に選択されています。[Next: Permissions] (次へ: アクセス許可) を選択します。
可能な場合は、アクセス許可ポリシーとして使用するポリシーを選択するか、[ポリシーの作成] を選択して新しいブラウザタブを開き、新しいポリシーをゼロから作成します。詳細については、IAM ユーザーガイドの「IAM ポリシーの作成 (コンソール)」のステップ 4 を参照してください。
ポリシーを作成したら、そのタブを閉じて元のタブに戻ります。WorkSpaces に割り当てるアクセス許可ポリシーの横にあるチェックボックスをオンにします。
(オプション) アクセス許可の境界を設定します。このアドバンスド機能は、サービスロールで使用できますが、サービスにリンクされたロールではありません。詳細については、IAM ユーザーガイドの「IAM エンティティのアクセス許可境界」を参照してください。
[Next: Tags] (次へ: タグ) を選択します。オプションで、タグをキーと値のペアとしてアタッチできます。詳細については、IAM ユーザーガイドの「IAM リソースのタグ付け」を参照してください。
[次へ: レビュー] を選択します。
[Role name] (ロール名) に、Amazon Web Services アカウント内で一意のロール名を入力します。他の AWS リソースがロールを参照する可能性があるため、ロールの作成後にロールの名前を編集することはできません。
[ロールの説明] に、デフォルトのロールの説明をそのまま使用するか、新しいロールの説明を入力します。
ロールを確認したら、[ロールを作成] を選択します。
WorkSpaces ストリーミングインスタンスで IAM ロールを使用する方法
IAM ロールを作成したら、WorkSpaces を起動するときにロールを WorkSpaces に適用できます。既存の WorkSpaces に IAM ロールを適用することもできます。
IAM ロールを WorkSpaces に適用すると、WorkSpaces は一時的な認証情報を取得し、インスタンスに workspaces_machine_role 認証情報プロファイルを作成します。一時的な認証情報は 1 時間有効で、新しい認証情報は 1 時間ごとに取得されます。以前の認証情報は失効しないため、有効である限り使用できます。認証情報プロファイルを使用して、選択した言語で コマンドラインインターフェイス (AWS CLI)、 AWS Tools for PowerShell、または AWS SDK を使用して AWS プログラムで AWS サービスを呼び出すことができます。
API コールを行う場合、認証情報プロファイルとして workspaces_machine_role を指定します。それ以外の場合、アクセス許可が不十分なため、オペレーションは失敗します。
ストリーミングインスタンスがプロビジョニングされている間、WorkSpaces は指定されたロールを引き受けます。WorkSpaces は AWS 、API コール用に VPC にアタッチされた Elastic Network Interface を使用するため、アプリケーションまたはスクリプトは、 AWS API コールを行う前に Elastic Network Interface が使用可能になるまで待機する必要があります。Elastic Network Interface が使用可能になる前に API 呼び出しが行われると、呼び出しは失敗します。
以下の例では、workspaces_machine_role 認証情報プロファイルを使用して、ストリーミングインスタンス (EC2 インスタンス) を記述し、Boto クライアントを作成する方法を示します。Boto は、Amazon Web Services (AWS) SDK for Python です。
CLI を使用してストリーミングインスタンス (EC2 インスタンス) AWS を記述する
aws ec2 describe-instances --region us-east-1 --profile workspaces_machine_role
AWS Tools for PowerShell を使用してストリーミングインスタンス (EC2 インスタンス) を記述する
AWS Tools for PowerShell バージョン 3.3.563.1 以降、Amazon Web Services SDK for .NET バージョン 3.3.103.22 以降を使用する必要があります。 AWS Tools for PowerShell と Amazon Web Services SDK for .NET を含む AWS Tools for Windows インストーラは、AWS Tools for PowerShell
Get-EC2Instance -Region us-east-1 -ProfileName workspaces_machine_role
AWS SDK for Python を使用した Boto クライアントの作成
session = boto3.Session(profile_name=workspaces_machine_role')