SAML のセットアップ - Amazon AppStream 2.0

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

SAML のセットアップ

既存の認証情報を使用してユーザーが AppStream 2.0 にサインインしたり、アプリケーションのストリーミングを開始したりできるように、SAML 2.0. を使用して ID フェデレーションを設定します。このためには、IAM ロールとリレーステート URL を使用して SAML 2.0 準拠 ID プロバイダー (IdP) を設定し、フェデレーティッドユーザーが AppStream 2.0 スタックにアクセスすることを AWS が許可するようにします。IAM ロールは、スタックへのアクセス許可をユーザーに付与します。リレーステートは、AWS による認証に成功した後にユーザーが転送されるスタックポータルです。

Prerequisites

SAML 2.0 接続を設定する前に、以下の前提条件を満たしていることを確認してください。

  1. AWS との信頼関係を確立するIdPように SAML ベースを設定します。

    • 組織のネットワーク内で、ID ストアを SAML ベースの と連携するように設定IdPします。 設定のリソースについては、「」を参照してくださいAppStream 2.0 SAML 2.0 との統合

    • SAML ベースの IdPを使用して、組織を として定義するフェデレーションメタデータドキュメントを生成し、ダウンロードIdPします。 この署名付き XML ドキュメントは、証明書利用者の信頼を確立するために使用されます。後で IAM コンソールからアクセスできる場所にこのファイルを保存します。

  2. AppStream 2.0 マネジメントコンソールを使用して AppStream 2.0 スタックを作成します。このトピックで後ほど説明するように、 IAM ポリシーを作成し、 IdP AppStream 2.0との統合を設定するには、このスタック名が必要です。

    AppStream 2.0 スタックを作成するには、AppStream 2.0 管理コンソール、AWS CLI、または AppStream 2.0 API を使用します。詳細については、を参照してください AppStream 2.0 フリートおよびスタックの作成

ステップ 1: AWS での SAML ID プロバイダーの作成IAM

まず、AWS IdPで SAML IAM を作成します。これにより、組織のIdPソフトウェアによって生成されたメタデータドキュメントを使用して、組織の IdP と AWS の信頼関係がIdP定義されます。詳細については、『https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console』の「IAM ユーザーガイドSAML ID プロバイダーの作成と管理 (AWS マネジメントコンソール)」を参照してください。IdPsで SAML AWS GovCloud (US-West) を使用する方法については、 ユーザーガイドの「AWS Identity and Access Management」を参照してくださいAWS GovCloud (US)。

ステップ 2: SAML 2.0 フェデレーション IAM ロールの作成

次に、SAML 2.0 フェデレーション IAM ロールを作成します。このステップでは、 IAM と組織の IdP との間に信頼関係を確立し、フェデレーションの信頼されたエンティティIdPとして を識別します。

SAML の IAM ロールを作成するにはIdP

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで [ロール]、[ロールの作成] の順に選択します。

  3. [ロールタイプ] で [SAML 2.0 フェデレーション] を選択します。

  4. SAML プロバイダーの場合は、作成した SAML を選択します。IdP

    重要

    2 つの SAML 2.0 アクセスメソッドのいずれも選択しないでください ([プログラムによるアクセスのみを許可する] または [プログラムによるアクセスと AWS マネジメントコンソールによるアクセスを許可する])。

  5. [属性] で 、[SAML:sub_type] を選択します。

  6. [Value] に「persistent.」と入力します。 この手順では、永続的の値の SAML サブジェクトタイプアサーションを含む SAML ユーザーストリーミングリクエストにのみロールアクセスを制限します。SAML:sub_type が persistent の場合、 は特定のユーザーからのすべての SAML リクエストのIdPエレメントに同じ一意の値NameIDを送信します。SAML:sub_type アサーションに関する詳細は、『SAML ベースのフェデレーションを使用した AWS への API アクセス』で「SAML ベースのフェデレーションでユーザーを一意に識別する」を参照してください。

  7. 正しい信頼されたエンティティと条件を確認して SAML 2.0 の信頼情報を確認し、[次へ] を選択します。アクセス許可。

  8. [Attach permissions policies] ページで、[Next:] を選択します。タグ.

  9. (オプション) 追加する各タグのキーと値を入力します。詳細については、「IAM ユーザーとロールのタグ付け」を参照してください。

  10. 完了したら、[Next:] を選択します。確認. 後でこのロールにインラインポリシーを作成して埋め込みます。

  11. [ name] に、このロールの目的を識別しやすくするロール名を入力します。多くのエンティティによりロールが参照されるため、作成後にロール名を変更することはできません。

  12. (オプション) [Role description (ロールの説明)] に、新しいロールの説明を入力します。

  13. ロールの詳細を確認し、[ロールの作成] を選択します。

ステップ 3: IAMロールにインラインポリシーを埋め込む

次に、作成したロールにインライン IAM ポリシーを埋め込みます。インラインポリシーを埋め込むと、ポリシーのアクセス許可が、間違ったプリンシパルエンティティにアタッチされることを回避できます。インラインポリシーは、フェデレーティッドユーザーに作成した AppStream 2.0 スタックへのアクセスを提供します。

  1. 作成した IAM ロールの詳細で、[Permissions (アクセス許可)] タブを選択し、[Add inline policy (インラインポリシーの追加)] を選択します。ポリシーの作成ウィザードが起動します。

  2. [ポリシーの作成] で、[JSON] タブを選択します。

  3. 次の JSON ポリシーをコピーして JSON ウィンドウに貼り付け、AWS リージョンコード、アカウント ID、スタック名を入力してリソースを編集します。次のポリシー、"Action": "appstream:Stream" は、作成したスタックのストリーミングセッションに接続するアクセス許可を AppStream 2.0 ユーザーに提供するアクションです。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appstream:Stream", "Resource": "arn:aws:appstream:REGION-CODE:ACCOUNT-ID-WITHOUT-HYPHENS:stack/STACK-NAME", "Condition": { "StringEquals": { "appstream:userId": "${saml:sub}" } } } ] }

    [] の値を選択します。REGION-CODE スタックが存在する AWS リージョンに対応する 。AppStream 2.0置換 STACK-NAME をスタックの名前に置き換えます。この値では大文字と小文字が区別されるため、このポリシーで指定するスタック名は、AppStream 2.0 マネジメントコンソールの [スタック] ダッシュボードで表示される AppStream 2.0 スタック名と一致する必要があることに注意してください。

    AWS GovCloud (US-West) のリソースの場合は、次の ARN 形式を使用します。

    arn:aws-us-gov:appstream:REGION-CODE:ACCOUNT-ID-WITHOUT-HYPHENS:stack/STACK-NAME

  4. 完了したら、[ポリシーの確認] をクリックします。Policy Validator によって、構文エラーがある場合はレポートされます。

ステップ 4: SAML ベースの を設定するIdP

次に、SAML ベース IdP に応じて、IdPhttps://signin.saml-metadata.xml/static/saml-metadata.xml にあるファイルをアップロードし、 が AWS をサービスプロバイダーと信頼aws.amazon.comするように手動で更新することが必要になる場合があります。IdP IdPこのステップにより、 のメタデータが更新されます。によっては、更新がすでに設定されている場合があります。IdPsこの場合は、次のステップに進みます。

でこの更新がまだ設定されていない場合は、 IdP から提供されたドキュメントでメタデータの更新方法に関する情報を確認します。IdPプロバイダーによっては、URL を入力し、 でファイルIdPを取得してインストールするオプションが提供されます。また、URL からファイルをダウンロードし、ローカルファイルとして指定する必要があるプロバイダーもあります。

ステップ 5: SAML 認証レスポンスのアサーションを作成する

次に、SAML ベース IdP によっては、認証レスポンスの一部として が にIdP渡す SAML 属性としての情報を設定する必要がある場合もあります。AWS一部の IdPs では、この情報はすでに設定されています。この場合は、次のステップに進みます。

でこの情報がまだ設定されていない場合は、次の操作を行います。IdP

  • SAML NameID – Subject サインインしているユーザーの一意の識別子です。

    注記

    ドメイン結合フリートを使用したスタックの場合、ユーザーのNameID値は、 を使用した「domain\username」または「sAMAccountName」の形式で指定する必要がありますusername@domain.com。userPrincipalName sAMAccountName形式を使用している場合は、domain名前または完全修飾ドメイン名 (FQDN) を使用して を指定できます。NetBIOS詳細については、を参照してください AppStream 2.0 で Active Directory を使用する

  • SAML サブジェクトタイプ (値を persistent に設定) 値を –に設定すると、 は特定のユーザーからのすべての SAML リクエストの要素に同じ一意の値persistentを送信します。IdPNameIDステップ 2: SAML 2.0 フェデレーション IAM ロールの作成 で説明するように、SAML sub_type が persistent に設定されている SAML リクエストのみを許可する条件が IAM ポリシーに含まれていることを確認します。

  • 要素 (属性が https://aws.amazon.com/SAML/Attributes/Role に設定) Attribute Name - この要素には、 でユーザーがマッピングされるロールと SAML – を一覧表示する 1 つ以上のAttributeValue要素が含まれますIAM。IdPIdP ロールと IdP はカンマ区切りの のペアとして指定しますARNs。

  • Name 属性の Attribute 要素は、https://aws.amazon.com/SAML/Attributes/RoleSessionName に設定される – この要素には、SSO 用に発行される AWS の一時的認証情報の識別子を提供する 1 つの AttributeValue 要素が含まれています。AttributeValue 要素の値は 2~64 文字で、英数字、アンダースコア、および + (プラス記号)、= (等号)、, (カンマ)、. (ピリオド)、@ (アットマーク)、- (ハイフン) のみで構成する必要があります。スペースを含めることはできません。通常、この値はユーザー ID (bobsmith) またはメールアドレス (bobsmith:bobsmith@example.com) になります。ユーザーの表示名 (Bob Smith) のように、スペースを含む値とすることはできません。

  • Attribute 要素 (SessionDuration 属性が https://aws.amazon.com/SAML/Attributes/SessionDuration に設定) (オプション) – この要素には、再認証が必要となる前にユーザーがアクティブでいられるフェデレーティッドストリーミングセッションの最大時間を特定する 1 つの AttributeValue 要素が含まれています。デフォルト値は 60 分です。詳細については、「認証レスポンスの SAML アサーションを設定する」の「https://aws.amazon.com/SAML/Attributes/SessionDuration に設定されたSessionDuration属性を持つオプションの Attribute 要素」セクションを参照してください

    注記

    SessionDuration はオプションの属性ですが、これを SAML レスポンスに含めることをお勧めします。この属性を指定しない場合、セッション時間はデフォルト値の 60 分に設定されます。

    ユーザーが AppStream 2.0 クライアントを使用して AppStream 2.0 のストリーミングアプリケーションにアクセスしている場合、ユーザーのセッション時間が期限切れになると、セッションは切断されます。ユーザーがウェブブラウザを使用して AppStream 2.0 のストリーミングアプリケーションにアクセスしている場合、ユーザーのセッション時間が期限切れになってユーザーがブラウザページを更新すると、セッションが切断されます。

これらの要素を設定する方法については、『https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html』 の「IAM ユーザーガイド認証レスポンスの SAML アサーションを設定する」を参照してください。の特定の設定要件の詳細については、 のドキュメントを参照してくださいIdP。IdP

ステップ 6: フェデレーションのリレーステートを設定する

最後に、 IdP スタックのリレーステートの URL を指すようにフェデレーションのリレーステートを設定します。AppStream 2.0AWS が認証に成功すると、ユーザーは AppStream 2.0 スタックポータルに誘導され、SAML 認証レスポンスでリレーステートとして定義されます。

リレーステートの URL の形式は次のようになります。

https://relay-state-region-endpoint?stack=stackname&accountId=aws-account-id-without-hyphens

AWS アカウント ID、スタック名、およびスタックが位置するリージョンと関連付けられたリレーステートのエンドポイントから、リレーステートの URL を構築します。

オプションで、自動的に起動するアプリケーションの名前を指定できます。アプリケーション名を見つけるには、AppStream 2.0 コンソールでイメージを選択し、[アプリケーション] タブを選択して、[アプリケーション名] 列に表示される名前を確認します。または、イメージをまだ作成していない場合は、アプリケーションをインストールした Image Builder に接続し、Image Assistant を開きます。アプリケーション名は [Add Apps] タブに表示されます。

フリートがデスクトップストリームビューで有効になっている場合は、オペレーティングシステムデスクトップで直接起動するように選択することもできます。そのためには、 の後のリレーステート URL の最後に指定しますDesktop&app=

https://relay-state-region-endpoint?stack=stackname&accountId=aws-account-id-without-hyphens&app=application-name-to-launch

次の表は、AppStream 2.0 を利用できるリージョンのリレーステートエンドポイントを示しています。ユーザーに FIPS 準拠の接続を使用してストリーミングするように求める場合は、FIPS 準拠のエンドポイントを使用する必要があります。FIPS エンドポイントの詳細については、「FIPS エンドポイントを使用した転送中のデータの保護」を参照してください。

[リージョン] リレーステートのエンドポイント
米国東部(バージニア北部)

https://appstream2.us-east-1.aws.amazon.com/saml

(FIPS) https://appstream2-fips.us-east-1.aws.amazon.com/saml

米国西部 (オレゴン)

https://appstream2.us-west-2.aws.amazon.com/saml

(FIPS) https://appstream2-fips.us-west-2.aws.amazon.com/saml

アジアパシフィック (ムンバイ) https://appstream2.ap-south-1.aws.amazon.com/saml
アジアパシフィック (ソウル) https://appstream2.ap-northeast-2.aws.amazon.com/saml
アジアパシフィック (シンガポール) https://appstream2.ap-southeast-1.aws.amazon.com/saml
アジアパシフィック (シドニー) https://appstream2.ap-southeast-2.aws.amazon.com/saml
アジアパシフィック (東京) https://appstream2.ap-northeast-1.aws.amazon.com/saml
欧州 (フランクフルト) https://appstream2.eu-central-1.aws.amazon.com/saml
欧州 (アイルランド) https://appstream2.eu-west-1.aws.amazon.com/saml
AWS GovCloud (US-West)

https://appstream2.us-gov-west-1.amazonaws-us-gov.com/saml

(FIPS) https://appstream2-fips.us-gov-west-1.amazonaws-us-gov.com/saml

注記

AppStream 2.0での AWS GovCloud (US-West) の使用の詳細については、 Amazon AppStream 2.0ユーザーガイドを参照してくださいAWS GovCloud (US)