

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

# Amazon WorkSpaces アプリケーションのセキュリティ
<a name="security"></a>

のクラウドセキュリティが最優先事項 AWS です。お客様は AWS 、セキュリティを最も重視する組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャを活用できます。

セキュリティは、 AWS お客様とお客様の間の責任共有です。[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)ではこれをクラウドのセキュリティおよびクラウド内のセキュリティと説明しています。
+ **クラウドのセキュリティ** – AWS クラウドで AWS サービスを実行するインフラストラクチャを保護する AWS 責任があります。 AWS また、 では、安全に使用できるサービスも提供しています。サードパーティーの監査者は、[AWS コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)コンプライアンスプログラムの一環として、当社のセキュリティの有効性を定期的にテストおよび検証。WorkSpaces アプリケーションに適用されるコンプライアンスプログラムの詳細については、「コンプライアンスプログラム[AWS による対象範囲内のサービスコンプライアンスプログラム](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。
+ **クラウドのセキュリティ** – お客様の責任は、使用する AWS サービスによって決まります。また、お客様は、データの機密性、会社の要件、適用される法律や規制など、その他の要因についても責任を負います。

このドキュメントは、WorkSpaces アプリケーションを使用する際に責任共有モデルを適用する方法を理解するのに役立ちます。セキュリティとコンプライアンスの目的を達成するように WorkSpaces アプリケーションを設定する方法を示します。また、WorkSpaces アプリケーションリソースのモニタリングや保護に役立つ他の AWS サービスの使用方法についても説明します。

**Topics**
+ [

# Amazon AppStream 2.0 におけるデータ保護
](data-protection.md)
+ [

# Amazon WorkSpaces アプリケーションの Identity and Access Management
](controlling-access.md)
+ [

# Amazon AppStream 2.0 でのログ記録とモニタリング
](logging-monitoring-alerting.md)
+ [

# Amazon AppStream 2.0 のコンプライアンスの検証
](compliance-validation.md)
+ [

# Amazon AppStream 2.0 の耐障害性
](disaster-recovery-resiliency.md)
+ [

# Amazon AppStream 2.0 のインフラストラクチャセキュリティ
](infrastructure-security.md)
+ [

# Amazon WorkSpaces アプリケーションのセキュリティグループ
](managing-network-security-groups.md)
+ [

# Amazon AppStream 2.0 での更新管理
](update-management.md)
+ [

# Amazon WorkSpaces アプリケーションサービス間の混乱した代理の防止
](confused-deputy.md)
+ [

# Amazon WorkSpaces アプリケーションのセキュリティのベストプラクティス
](security-best-practices.md)

# Amazon AppStream 2.0 におけるデータ保護
<a name="data-protection"></a>

Amazon AppStream 2.0 のデータ保護には、AWS [責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)が適用されます。このモデルで説明されているように、AWS は、AWS クラウド のすべてを実行するグローバルインフラストラクチャの保護に責任を持ちます。お客様は、このインフラストラクチャでホストされているコンテンツに対する管理を維持する責任があります。このコンテンツには、使用される AWS のサービス のセキュリティ設定と管理タスクが含まれます。データプライバシーの詳細については、[データプライバシーのよくある質問](https://aws.amazon.com/compliance/data-privacy-faq)を参照してください。欧州でのデータ保護の詳細については、*AWS セキュリティブログ*に投稿された [AWS 責任共有モデルおよび GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) のブログ記事を参照してください。

データを保護するため、AWS アカウント の認証情報を保護し、AWS Identity and Access Management (IAM) で個々のユーザーをセットアップすることをお勧めします。この方法により、それぞれのジョブを遂行するために必要な許可のみを各ユーザーに付与できます。また、次の方法でデータを保護することをお勧めします。
+ 各アカウントで多要素認証 (MFA) を使用します。
+ SSL/TLS を使用して 「AWS」 リソースと通信します。TLS 1.2 をお勧めします。
+ AWS CloudTrail で API とユーザーアクティビティログをセットアップします。
+ AWS 暗号化ソリューションを AWS のサービス内のすべてのデフォルトのセキュリティ管理と一緒に使用します。
+ Amazon Macie などのアドバンストマネージドセキュリティサービスを使用します。これは、Amazon S3 に保存されている個人データの検出と保護を支援します。
+ コマンドラインインターフェースまたは API を使用して AWS にアクセスするときに FIPS 140−2 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、[連邦情報処理規格 (FIPS) 140-2](https://aws.amazon.com/compliance/fips/)を参照してください。

顧客の E メールアドレスなど、機密性がある繊細な情報は、タグや [**名前**] フィールドなどの自由形式のフィールドに配置しないことを強くお勧めします。これは、コンソール、API、AWS CLI、または AWS SDK から、AppStream 2.0 または他の AWS サービスを使用する場合も同様です。タグまたは名前に使用する自由記入欄に入力したデータは、課金や診断ログに使用される場合があります。外部サーバーへ URL を供給する場合は、そのサーバーへのリクエストを検証するために、認証情報を URL に含めないことを強くお勧めします。

**Topics**
+ [

# 保管時の暗号化
](encryption-rest.md)
+ [

# 転送時の暗号化
](encryption-transit.md)
+ [

# 管理者のコントロール
](administrator-controls.md)
+ [

# アプリケーションアクセス
](application-access.md)

# 保管時の暗号化
<a name="encryption-rest"></a>

AppStream 2.0 フリートインスタンスは、本質的に一時的なものです。ユーザーのストリーミングセッションが終了すると、基礎となるインスタンスとそれに関連付けられた Amazon Elastic Block Store (Amazon EBS) ボリュームが終了します。また、AppStream 2.0 は鮮度のために未使用のインスタンスを定期的にリサイクルします。

ユーザーのために、[アプリケーション設定の永続性](how-it-works-app-settings-persistence.md)または[ホームフォルダ](home-folders-admin.md)、[セッションスクリプト](enable-S3-bucket-storage-session-script-logs.md)、[使用状況レポート](enable-usage-reports.md)を有効にした場合は、ユーザーによって生成され Amazon Simple Storage バケットに保存されたデータは暗号化されます。AWS Key Management Service は、安全で可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供するサービスです。Amazon S3 は、[AWS マネージド CMK](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) を使用して Amazon S3 オブジェクトデータを暗号化します。

# 転送時の暗号化
<a name="encryption-transit"></a>

次のテーブルに、転送中のデータの暗号化方法に関する情報を示します。該当する場合は、AppStream 2.0 の他のデータ保護方法もリストされます。


| データ | ネットワークパス | 保護方法 | 
| --- | --- | --- | 
|  ウェブ資産 このトラフィックには、イメージや JavaScript ファイルなどのアセットが含まれます。  |  AppStream 2.0 ユーザーと AppStream 2.0 の間で  | TLS 1.2 を使用して暗号化 | 
| ピクセルおよび関連するストリーミングトラフィック | AppStream 2.0 ユーザーと AppStream 2.0 の間で |  256 ビット高度暗号化規格 (AES-256) を使用して暗号化 TLS 1.2 を使用して転送  | 
| API トラフィック | AppStream 2.0 ユーザーと AppStream 2.0 の間で |  TLS 1.2 を使用して暗号化 接続を作成するリクエストは、SigV4 を使用して署名されます。  | 
| ユーザーが生成したアプリケーション設定とホームフォルダデータ アプリケーション設定の永続性とホームフォルダが有効になっている場合に適用されます。  | AppStream 2.0 ユーザーと Amazon S3 の間で | Amazon S3 SSL エンドポイントを使用して暗号化 | 
| AppStream 2.0 で管理されたトラフィック |  AppStream 2.0 ストリーミングインスタンスと: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/appstream2/latest/developerguide/encryption-transit.html)  | TLS 1.2 を使用して暗号化 接続を作成するリクエストは、該当する場合は SigV4 を使用して署名されます。 | 

# 管理者のコントロール
<a name="administrator-controls"></a>

AppStream 2.0 には、ローカルコンピュータと AppStream 2.0 フリートインスタンス間でユーザーがデータを転送する方法を制限するために使用できる管理コントロールが用意されています。[AppStream 2.0 スタックの作成または更新時](set-up-stacks-fleets-install.md)に、次の項目を制限または無効にできます。
+ クリップボード/コピーと貼り付けアクション
+ ファイルのアップロードとダウンロード (フォルダとドライブのリダイレクトを含む)
+ 印刷

AppStream 2.0 イメージを作成するときに、Windows 用 AppStream 2.0 クライアントから AppStream 2.0 フリートインスタンスにリダイレクトできる USB デバイスを指定できます。指定する USB デバイスは、ユーザーの AppStream 2.0 ストリーミングセッション中に使用できます。詳細については、「[ストリーミングアプリケーションで使用する USB デバイスを認証する](qualify-usb-devices.md)」を参照してください。

# アプリケーションアクセス
<a name="application-access"></a>

デフォルトでは、AppStream 2.0 はイメージで指定するアプリケーションが、Image Builder およびフリートインスタンス上の他のアプリケーションと実行可能ファイルを起動できるようにします。これにより、他のアプリケーションに依存するアプリケーション (たとえば、ブラウザを起動して製品のウェブサイトに移動するアプリケーション) が想定どおりに機能します。管理コントロール、セキュリティグループ、およびその他のセキュリティソフトウェアを設定して、リソースにアクセスし、ローカルコンピュータとフリートインスタンス間でデータを転送するために必要な最小限のアクセス許可をユーザーに付与します。

[Microsoft AppLocker](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/applocker-overview) などのアプリケーション制御ソフトウェアおよびポリシーを使用して、ユーザーが実行できるアプリケーションとファイルを制御できます。アプリケーション制御ソフトウェアとポリシーは、ユーザーが AppStream 2.0 Image Builder とフリートインスタンスで実行できる実行可能ファイル、スクリプト、Windows インストーラーファイル、ダイナミックリンクライブラリ、およびアプリケーションパッケージを制御するのに役立ちます。

**注記**  
AppStream 2.0 エージェントソフトウェアは、Windows コマンドプロンプトと Windows Powershell に依存して、ストリーミングインスタンスをプロビジョニングします。ユーザーが Windows コマンドプロンプトまたは Windows Powershell を起動できないように選択する場合は、Windows NT AUTHORITY\$1SYSTEM または管理者グループのユーザーにはポリシーを適用しないでください。


| ルールタイプ | アクション | Windows ユーザーまたはグループ | 名前/パス | 条件 | 説明 | 
| --- | --- | --- | --- | --- | --- | 
| 実行可能ファイル | 許可 | NT AUTHORITY\$1System | \$1 | パス | AppStream 2.0 エージェントソフトウェアに必要 | 
| 実行可能ファイル | 許可 | BUILTIN\$1Administrators | \$1 | パス | AppStream 2.0 エージェントソフトウェアに必要 | 
| 実行可能ファイル | 許可 | 全員 | %PROGRAMFILES%\$1nodejs\$1\$1 | パス | AppStream 2.0 エージェントソフトウェアに必要 | 
| 実行可能ファイル | 許可 | 全員 | %PROGRAMFILES%\$1NICE\$1\$1 | パス | AppStream 2.0 エージェントソフトウェアに必要 | 
| 実行可能ファイル | 許可 | 全員 | %PROGRAMFILES%\$1Amazon\$1\$1 | パス | AppStream 2.0 エージェントソフトウェアに必要 | 
| 実行可能ファイル | 許可 | 全員 | %PROGRAMFILES%\$1<default-browser>\$1\$1 | パス | Google ドライブや Microsoft OneDrive for Business などの永続的ストレージソリューションを使用する場合、AppStream 2.0 エージェントソフトウェアに必要です。この例外は、AppStream 2.0 ホームフォルダを使用する場合には必要ありません。 | 

# Amazon WorkSpaces アプリケーションの Identity and Access Management
<a name="controlling-access"></a>

セキュリティ認証情報は、 の サービスを識別 AWS し、WorkSpaces アプリケーション AWS リソースなどの リソースを無制限に使用できるようにします。WorkSpaces アプリケーションおよび AWS Identity and Access Management (IAM) の機能を使用すると、他のユーザー、サービス、アプリケーションがセキュリティ認証情報を共有せずに WorkSpaces アプリケーションリソースを使用できるようになります。

IAM を使用して、他のユーザーが Amazon Web Services アカウントのリソースを使用する方法を制御できます。また、セキュリティグループを使用して WorkSpaces アプリケーションストリーミングインスタンスへのアクセスを制御できます。WorkSpaces アプリケーションリソースのフル使用または制限付き使用を許可できます。

**Topics**
+ [

# ストリーミングインスタンスへのネットワークアクセス
](network-access-to-streaming-instances.md)
+ [

# AWS マネージドポリシーとリンクされたロールを使用して WorkSpaces アプリケーションリソースへの管理者アクセスを管理する
](controlling-administrator-access-with-policies-roles.md)
+ [

# IAM ポリシーを使用して Application Auto Scaling への管理者アクセスを管理する
](autoscaling-iam-policy.md)
+ [

# IAM ポリシーを使用したホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットへの管理者アクセスの管理
](s3-iam-policy.md)
+ [

# IAM ロールを使用して WorkSpaces アプリケーションストリーミングインスタンスで実行されるアプリケーションとスクリプトにアクセス許可を付与する
](using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.md)
+ [

# Red Hat Enterprise Linux および Rocky Linux の SELinux
](selinux.md)
+ [

# Amazon WorkSpaces アプリケーションでの Cookie ベースの認証
](cookie-auth.md)

# ストリーミングインスタンスへのネットワークアクセス
<a name="network-access-to-streaming-instances"></a>

セキュリティグループは、ストリーミングインスタンスに到達できるトラフィックを制御するステートフルなファイアウォールとして機能します。WorkSpaces Applications ストリーミングインスタンスを起動するときは、1 つ以上のセキュリティグループに割り当てます。セキュリティグループのそれぞれに、そのインスタンスへのトラフィックを制御するルールを追加できます。セキュリティグループのルールはいつでも変更できます。新しいルールは、セキュリティグループが割り当てられているすべてのインスタンスに自動的に適用されます。

詳細については、「[Amazon WorkSpaces アプリケーションのセキュリティグループ](managing-network-security-groups.md)」を参照してください。

# AWS マネージドポリシーとリンクされたロールを使用して WorkSpaces アプリケーションリソースへの管理者アクセスを管理する
<a name="controlling-administrator-access-with-policies-roles"></a>

デフォルトでは、IAM ユーザーには WorkSpaces アプリケーションリソースを作成または変更したり、WorkSpaces アプリケーション API を使用してタスクを実行したりするために必要なアクセス許可はありません。つまり、これらのユーザーは WorkSpaces アプリケーションコンソールまたは WorkSpaces アプリケーション AWS CLI コマンドを使用してこれらのアクションを実行できません。IAM ユーザーがリソースを作成または変更し、タスクを実行できるようにするには、それらのアクセス許可を必要とする IAM ユーザーまたはグループに IAM ポリシーをアタッチします。

ポリシーをユーザー、ユーザーのグループ、または IAM ロールにアタッチする場合、ポリシーによって特定リソースの特定タスクを実行するユーザーの権限が許可または拒否されます。

**Topics**
+ [

# AWS WorkSpaces アプリケーションリソースにアクセスするために必要な管理ポリシー
](managed-policies-required-to-access-appstream-resources.md)
+ [

# WorkSpaces アプリケーション、Application Auto Scaling、および AWS Certificate Manager プライベート CA に必要なロール
](roles-required-for-appstream.md)
+ [

# AmazonAppStreamServiceAccess のサービスロールおよびポリシーを確認する
](controlling-access-checking-for-iam-service-access.md)
+ [

# ApplicationAutoScalingForAmazonAppStreamAccess サービスロールとポリシーの確認
](controlling-access-checking-for-iam-autoscaling.md)
+ [

# `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` サービスにリンクされたロールとポリシーの確認
](controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet.md)
+ [

# AmazonAppStreamPCAAccess のサービスロールおよびポリシーを確認する
](controlling-access-checking-for-AppStreamPCAAccess.md)

# AWS WorkSpaces アプリケーションリソースにアクセスするために必要な管理ポリシー
<a name="managed-policies-required-to-access-appstream-resources"></a>

WorkSpaces アプリケーションへの完全な管理アクセスまたは読み取り専用アクセスを提供するには、これらのアクセス許可を必要とする IAM ユーザーまたはグループに、次のいずれか AWS の管理ポリシーをアタッチする必要があります。*AWS 管理ポリシー*は、 AWSが作成および管理するスタンドアロンポリシーです。詳細については、「IAM ユーザーガイド」の「[AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

**注記**  
では AWS、IAM ロールを使用して AWS サービスにアクセス許可を付与し、 AWS リソースにアクセスできるようにします。ロールにアタッチされているポリシーによって、サービスがアクセスできる AWS リソースと、それらのリソースで何ができるかが決まります。WorkSpaces アプリケーションの場合、**AmazonAppStreamFullAccess** ポリシーで定義されたアクセス許可に加えて、 AWS アカウントに必要なロールも必要です。詳細については、「[WorkSpaces アプリケーション、Application Auto Scaling、および AWS Certificate Manager プライベート CA に必要なロール](roles-required-for-appstream.md)」を参照してください。

**AmazonAppStreamFullAccess**  
この管理ポリシーは、WorkSpaces アプリケーションリソースへの完全な管理アクセスを提供します。WorkSpaces アプリケーションリソースを管理し、コマンドラインインターフェイス (AWS CLI)、 AWS SDK、または AWS マネジメントコンソールを使用して API AWS アクションを実行するには、このポリシーで定義されているアクセス許可が必要です。  
IAM ユーザーとして WorkSpaces アプリケーションコンソールにサインインする場合は、このポリシーを にアタッチする必要があります AWS アカウント。コンソールのフェデレーションを使用してサインインする場合は、フェデレーションで使用した IAM ロールにこのポリシーをアタッチする必要があります。  
このポリシーのアクセス許可を確認する方法については、「[AmazonAppStreamFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamFullAccess.html)」を参照してください。

**AmazonAppStreamReadOnlyAccess**  
このアイデンティティベースのポリシーは、WorkSpaces アプリケーションリソースおよび関連するサービス設定を表示およびモニタリングするための読み取り専用アクセス許可をユーザーに付与します。ユーザーは WorkSpaces アプリケーションコンソールにアクセスして、ストリーミングアプリケーション、フリートステータス、使用状況レポート、および関連リソースを表示できますが、変更を加えることはできません。このポリシーには、包括的なモニタリングとレポート機能を有効にするために、IAM、Application 自動スケーリング、CloudWatch などのサービスをサポートするために必要な読み取りアクセス許可も含まれています。  
このポリシーのアクセス許可を確認する方法については、「[AmazonAppStreamReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamReadOnlyAccess.html)」を参照してください。

WorkSpaces アプリケーションコンソールは、CLI または AWS SDK AWS では利用できない機能を提供する追加のアクションを使用します。**AmazonAppStreamFullAccess** ポリシーと **AmazonAppStreamReadOnlyAccess** ポリシーのどちらも、次のアクションのアクセス許可を提供します。


| アクション | 説明 | アクセスレベル | 
| --- | --- | --- | 
| DescribeImageBuilders | イメージビルダー名が設定されている場合、1 つ以上の指定したイメージビルダーを記述するリストを取得する許可を付与。それ以外の場合は、アカウントのすべてのイメージビルダーが記述されます。 | 読み取り | 

**AmazonAppStreamPCAAccess**  
この管理ポリシーは、証明書ベースの認証のために、 AWS アカウントの Certificate Manager プライベート CA リソースへの AWS 完全な管理アクセスを提供します。  
このポリシーのアクセス許可を確認する方法については、「[AmazonAppStreamPCAAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamPCAAccess.html)」を参照してください。

**AmazonAppStreamServiceAccess**  
この管理ポリシーは、WorkSpaces アプリケーションサービスロールのデフォルトポリシーです。  
このロールのアクセス許可ポリシーにより、WorkSpaces アプリケーションは次のアクションを実行できます。  
+ WorkSpaces アプリケーションフリートのアカウントでサブネットを使用する場合、WorkSpaces アプリケーションはサブネット、VPCs、アベイラビリティーゾーンを記述し、それらのサブネット内のフリートインスタンスに関連付けられたすべての Elastic Network Interface のライフサイクルを作成および管理できます。これには、サブネットからそれらの Elastic Network Interface にセキュリティグループと IP アドレスをアタッチする機能も含まれます。
+ UPP や HomeFolders などの機能を使用する場合、WorkSpaces アプリケーションはアカウントで Amazon S3 バケット、オブジェクトとそのライフサイクル、ポリシー、暗号化設定を作成および管理できます。これらのバケットには、次の命名プレフィックスが含まれます。
  + `"arn:aws:s3:::appstream2-36fb080bb8-",`
  + `"arn:aws:s3:::appstream-app-settings-",`
  + `"arn:aws:s3:::appstream-logs-"`
このポリシーのアクセス許可を表示する方法については、「[AmazonAppStreamServiceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamServiceAccess.html)」を参照してください。

**ApplicationAutoScalingForAmazonAppStreamAccess**  
この管理ポリシーは、WorkSpaces アプリケーションのアプリケーションの自動スケーリングを有効にします。  
このポリシーのアクセス許可を表示する方法については、「[「ApplicationAutoScalingForAmazonAppStreamAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ApplicationAutoScalingForAmazonAppStreamAccess.html)」を参照してください。

**AWSApplicationAutoscalingAppStreamFleetPolicy**  
この管理ポリシーは、Application Auto Scaling が WorkSpaces アプリケーションと CloudWatch にアクセスするためのアクセス許可を付与します。  
このポリシーのアクセス許可を表示する方法については、「[AWSApplicationAutoscalingAppStreamFleetPolicy ](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSApplicationAutoscalingAppStreamFleetPolicy.html)」を参照してください。

## AWS マネージドポリシーへの WorkSpaces アプリケーションの更新
<a name="security-iam-awsmanpol-updates"></a>



このサービスがこれらの変更の追跡を開始してからの WorkSpaces アプリケーションの AWS マネージドポリシーの更新に関する詳細を表示します。このページへの変更に関する自動アラートについては、[Amazon WorkSpaces アプリケーションのドキュメント履歴](doc-history.md) ページの RSS フィードを購読してください。




| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  AmazonAppStreamServiceAccess – 変更  |   ポリシー JSON ポリシードキュメント`"ec2:DescribeImages"`に の許可アクセス許可を追加  | 2025 年 11 月 17 日 | 
|  AmazonAppStreamReadOnlyAccess – 変更  |   JSON ポリシードキュメントから `"appstream:Get*",` を削除しました  | 2025 年 10 月 22 日 | 
|  WorkSpaces アプリケーションが変更の追跡を開始しました  |  WorkSpaces アプリケーションが AWS 管理ポリシーの変更の追跡を開始  | 2022 年 10 月 31 日 | 

# WorkSpaces アプリケーション、Application Auto Scaling、および AWS Certificate Manager プライベート CA に必要なロール
<a name="roles-required-for-appstream"></a>

では AWS、IAM ロールを使用して AWS サービスにアクセス許可を付与し、 AWS リソースにアクセスできるようにします。ロールにアタッチされているポリシーによって、サービスがアクセスできる AWS リソースと、それらのリソースで何ができるかが決まります。WorkSpaces アプリケーションの場合、**AmazonAppStreamFullAccess** ポリシーで定義されたアクセス許可に加えて、 AWS アカウントに次のロールも必要です。

**Topics**
+ [

## AmazonAppStreamServiceAccess
](#AmazonAppStreamServiceAccess)
+ [

## ApplicationAutoScalingForAmazonAppStreamAccess
](#ApplicationAutoScalingForAmazonAppStreamAccess)
+ [

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet
](#AWSServiceRoleForApplicationAutoScaling_AppStreamFleet)
+ [

## AmazonAppStreamPCAAccess
](#AppStreamPCAAccess)

## AmazonAppStreamServiceAccess
<a name="AmazonAppStreamServiceAccess"></a>

このロールは、 AWS リージョンで WorkSpaces アプリケーションの使用を開始すると自動的に作成されるサービスロールです。サービスロールの詳細については、*IAM ユーザーガイド*の[「 AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

WorkSpaces Applications リソースの作成中に、WorkSpaces Applications サービスは、このロールを引き受けることで、ユーザーに代わって他の AWS のサービスへの API コールを行います。フリートを作成するには、アカウントにこのロールが必要です。このロールが AWS アカウントになく、必要な IAM アクセス許可と信頼関係ポリシーがアタッチされていない場合、WorkSpaces アプリケーションフリートを作成することはできません。

詳細については、「[AmazonAppStreamServiceAccess のサービスロールおよびポリシーを確認する](controlling-access-checking-for-iam-service-access.md)」を参照して、**AmazonAppStreamServiceAccess** サービスロールの有無と、適切なポリシーがアタッチされているかどうかを確認してください。

**注記**  
このサービスロールには、WorkSpaces アプリケーションの使用を開始する最初のユーザーとは異なるアクセス許可を持つことができます。このロールのアクセス許可の詳細については、「[AWS WorkSpaces アプリケーションリソースにアクセスするために必要な管理ポリシー](managed-policies-required-to-access-appstream-resources.md)」の「AmazonAppStreamServiceAccess」を参照してください。

## ApplicationAutoScalingForAmazonAppStreamAccess
<a name="ApplicationAutoScalingForAmazonAppStreamAccess"></a>

このロールは、 AWS リージョンで WorkSpaces アプリケーションの使用を開始すると自動的に作成されるサービスロールです。サービスロールの詳細については、*IAM ユーザーガイド*の[「 AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

自動スケーリングは、WorkSpaces Applications フリートの機能です。スケーリングポリシーを設定するには、 AWS アカウントにこのサービスロールが必要です。このサービスロールが AWS アカウントになく、必要な IAM アクセス許可と信頼関係ポリシーがアタッチされていない場合、WorkSpaces アプリケーションフリートをスケールすることはできません。

詳細については、「[ApplicationAutoScalingForAmazonAppStreamAccess サービスロールとポリシーの確認](controlling-access-checking-for-iam-autoscaling.md)」を参照してください。

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet
<a name="AWSServiceRoleForApplicationAutoScaling_AppStreamFleet"></a>

このロールは、自動的に作成されるサービスにリンクされたロールです。詳細については、*アプリケーション Auto Scaling ユーザーガイド*の「[サービスにリンクされたロール](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html)」を参照してください。

Application Auto Scaling は、サービスにリンクされたロールを使用して、ユーザーに代わって自動スケーリングを実行します。*サービスにリンクされたロール*は、 AWS サービスに直接リンクされた IAM ロールです。このロールには、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれます。

詳細については、「[`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` サービスにリンクされたロールとポリシーの確認](controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet.md)」を参照してください。

## AmazonAppStreamPCAAccess
<a name="AppStreamPCAAccess"></a>

このロールは、 AWS リージョンで WorkSpaces アプリケーションの使用を開始すると自動的に作成されるサービスロールです。サービスロールの詳細については、*IAM ユーザーガイド*の[「 AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

証明書ベースの認証は、Microsoft Active Directory ドメインに結合された WorkSpaces アプリケーションフリートの機能です。証明書ベースの認証を有効にして使用するには、 AWS アカウントにこのサービスロールが必要です。このサービスロールが AWS アカウントになく、必要な IAM アクセス許可と信頼関係ポリシーがアタッチされていない場合、証明書ベースの認証を有効化または使用することはできません。

詳細については、「[AmazonAppStreamPCAAccess のサービスロールおよびポリシーを確認する](controlling-access-checking-for-AppStreamPCAAccess.md)」を参照してください。

# AmazonAppStreamServiceAccess のサービスロールおよびポリシーを確認する
<a name="controlling-access-checking-for-iam-service-access"></a>

**AmazonAppStreamServiceAccess** サービスロールの有無と、適切なポリシーがアタッチされているかどうかを確認するには、このセクションのステップを実行します。このロールがアカウントになく、作成する必要がある場合、ユーザーまたは必要なアクセス許可を持つ管理者は、Amazon Web Services アカウントの WorkSpaces アプリケーションの使用を開始するステップを実行する必要があります。

**AmazonAppStreamServiceAccess の IAM サービスロールの有無を確認するには**

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. 検索ボックスに **amazonappstreamservice** と入力して、選択するロールのリストを絞り込み、[**AmazonAppStreamServiceAccess**] を選択します。表示されたら、このロールを選択して、ロールの [**概要**] ページを表示します。

1. [**アクセス許可**] タブで、**AmazonAppStreamServiceAccess** アクセス許可ポリシーがアタッチされているかどうかを確認します。

1. ロールの [**概要**] ページに戻ります。

1. [**信頼関係**] タブで、[**Show policy document (ポリシードキュメントの表示)**] を選択して、**AmazonAppStreamServiceAccess** 信頼関係ポリシーがアタッチされていて、適切な形式に従っているかどうかを確認します。アタッチされている場合、信頼関係は正しく設定されています。[**Cancel (キャンセル)**] を選択して、IAM コンソールを閉じます。

## AmazonAppStreamServiceAccess 信頼関係ポリシー
<a name="controlling-access-service-access-trust-policy"></a>

**AmazonAppStreamServiceAccess** 信頼関係ポリシーには、WorkSpaces アプリケーションサービスをプリンシパルとして含める必要があります。*プリンシパル*は、 AWS アクションを実行し、リソースにアクセスできる のエンティティです。このポリシーには `sts:AssumeRole` アクションも含める必要があります。次のポリシー設定では、WorkSpaces アプリケーションを信頼されたエンティティとして定義します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
      "Service": "appstream.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# ApplicationAutoScalingForAmazonAppStreamAccess サービスロールとポリシーの確認
<a name="controlling-access-checking-for-iam-autoscaling"></a>

**ApplicationAutoScalingForAmazonAppStreamAccess** サービスロールの有無と、適切なポリシーがアタッチされているかどうかを確認するには、このセクションのステップを実行します。このロールがアカウントになく、作成する必要がある場合、ユーザーまたは必要なアクセス許可を持つ管理者は、Amazon Web Services アカウントの WorkSpaces アプリケーションの使用を開始するステップを実行する必要があります。

**ApplicationAutoScalingForAmazonAppStreamAccess IAM サービスロールが存在するかどうかを確認するには**

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. 検索ボックスに「**applicationautoscaling**」と入力して、選択するロールのリストを絞り込み、**[ApplicationAutoScalingForAmazonAppStreamAccess]** を選択します。表示されたら、このロールを選択して、ロールの [**概要**] ページを表示します。

1. **[アクセス許可]** タブで、**[ApplicationAutoScalingForAmazonAppStreamAccess]** アクセス許可ポリシーがアタッチされているかどうかを確認します。

1. ロールの [**概要**] ページに戻ります。

1. **[信頼関係]** タブで、**[ポリシードキュメントの表示]** を選択して、**[ApplicationAutoScalingForAmazonAppStreamAccess]** 信頼関係ポリシーがアタッチされていて、適切な形式に従っているかどうかを確認します。アタッチされている場合、信頼関係は正しく設定されています。[**Cancel (キャンセル)**] を選択して、IAM コンソールを閉じます。

## ApplicationAutoScalingForAmazonAppStreamAccess 信頼関係ポリシー
<a name="controlling-access-autoscaling-trust-policy"></a>

**ApplicationAutoScalingForAmazonAppStreamAccess** 信頼関係ポリシーには、Application Auto Scaling サービスをプリンシパルとして含める必要があります。このポリシーには `sts:AssumeRole` アクションも含める必要があります。次のポリシー設定では、Application Auto Scaling を信頼されたエンティティとして定義しています。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "application-autoscaling.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` サービスにリンクされたロールとポリシーの確認
<a name="controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet"></a>

`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` サービスにリンクされたロールの有無と、適切なポリシーがアタッチされているかどうかを確認するには、このセクションのステップを実行します。このロールがアカウントになく、作成する必要がある場合、ユーザーまたは必要なアクセス許可を持つ管理者は、Amazon Web Services アカウントの WorkSpaces アプリケーションの使用を開始するステップを実行する必要があります。

**`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` IAM サービスにリンクされたロールが存在するかどうかを確認するには**

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. 検索ボックスに **applicationautoscaling** と入力して、選択するロールのリストを絞り込み、`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` を選択します。表示されたら、このロールを選択して、ロールの [**概要**] ページを表示します。

1. **[Permissions]** (アクセス許可) タブで、`AWSApplicationAutoscalingAppStreamFleetPolicy` アクセス許可ポリシーがアタッチされているかどうかを確認します。

1. [**ロール**] の概要ページに戻ります。

1. **[信頼関係]** タブで、**[ポリシードキュメントの表示]** を選択して、`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet`[] 信頼関係ポリシーがアタッチされていて、適切な形式に従っているかどうかを確認します。アタッチされている場合、信頼関係は正しく設定されています。[**Cancel (キャンセル)**] を選択して、IAM コンソールを閉じます。

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet 信頼関係ポリシー
<a name="controlling-access-application-autoscaling-appstream-fleet-trust-policy"></a>

`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 信頼関係ポリシーには、プリンシパルとして **appstream.application-autoscaling.amazonaws.com** を含める必要があります。このポリシーには `sts:AssumeRole` アクションも含める必要があります。次のポリシー設定では、**appstream.application-autoscaling.amazonaws.com** を信頼されたエンティティとして定義しています。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "appstream.application-autoscaling.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# AmazonAppStreamPCAAccess のサービスロールおよびポリシーを確認する
<a name="controlling-access-checking-for-AppStreamPCAAccess"></a>

**AmazonAppStreamPCAAccess** サービスロールの有無と、適切なポリシーがアタッチされているかどうかを確認するには、このセクションのステップを実行します。このロールがアカウントになく、作成する必要がある場合、ユーザーまたは必要なアクセス許可を持つ管理者は、Amazon Web Services アカウントの WorkSpaces アプリケーションの使用を開始するステップを実行する必要があります。

**AmazonAppStreamPCAAccess の IAM サービスロールの有無を確認するには**

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. 検索ボックスに「**appstreampca**」と入力して、選択するロールのリストを絞り込み、[**AmazonAppStreamPCAAccess**] を選択します。表示されたら、このロールを選択して、ロールの [**概要**] ページを表示します。

1. [**アクセス許可**] タブで、**AmazonAppStreamPCAAccess** アクセス権限ポリシーがアタッチされているかどうかを確認します。

1. [**ロール**] の概要ページに戻ります。

1. [**信頼関係**] タブで、[**Show policy document**] (ポリシードキュメントの表示) を選択して、**AmazonAppStreamPCAAccess** 信頼関係ポリシーがアタッチされていて、適切な形式に従っているかどうかを確認します。アタッチされている場合、信頼関係は正しく設定されています。[**Cancel (キャンセル)**] を選択して、IAM コンソールを閉じます。

## AmazonAppStreamPCAAccess 信頼関係ポリシー
<a name="controlling-access-amazonappstreampcaaccess-trust-policy"></a>

**AmazonAppStreamPCAAccess** 信頼関係ポリシーには、prod.euc.ecm.amazonaws.com をプリンシパルとして含める必要があります。このポリシーには `sts:AssumeRole` アクションも含める必要があります。次のポリシー設定は、ECM を信頼されたエンティティとして定義します。

**CLI を使用して AmazonAppStreamPCAAccess AWS 信頼関係ポリシーを作成するには**

1. `AmazonAppStreamPCAAccess.json` という名前の JSON ファイルを次の内容で作成します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "prod.euc.ecm.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole",
               "Condition": {}
           }
       ]
   }
   ```

------

1. 必要に応じて`AmazonAppStreamPCAAccess.json`パスを調整し、次の AWS CLI コマンドを実行して信頼関係ポリシーを作成し、AmazonAppStreamPCAAccess 管理ポリシーをアタッチします。管理ポリシーの詳細については、「[AWS WorkSpaces アプリケーションリソースにアクセスするために必要な管理ポリシー](managed-policies-required-to-access-appstream-resources.md)」を参照してください。

   ```
   aws iam create-role --path /service-role/ --role-name AmazonAppStreamPCAAccess --assume-role-policy-document file://AmazonAppStreamPCAAccess.json
   ```

   ```
   aws iam attach-role-policy —role-name AmazonAppStreamPCAAccess —policy-arn arn:aws:iam::aws:policy/AmazonAppStreamPCAAccess
   ```

# IAM ポリシーを使用して Application Auto Scaling への管理者アクセスを管理する
<a name="autoscaling-iam-policy"></a>

フリートの自動スケーリングは、WorkSpaces アプリケーション、Amazon CloudWatch、および Application Auto Scaling APIs。WorkSpaces アプリケーションフリートは WorkSpaces アプリケーションを使用して作成され、アラームは CloudWatch を使用して作成され、スケーリングポリシーは Application Auto Scaling を使用して作成されます。

[AmazonAppStreamFullAccess](managed-policies-required-to-access-appstream-resources.md) ポリシーで定義されたアクセス許可に加えて、フリートスケーリング設定にアクセスする IAM ユーザーには、動的スケーリングをサポートするサービスに必要なアクセス許可が必要です。IAM ユーザーには、次のポリシー例に示すアクションを使用するためのアクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "appstream:*",
          "application-autoscaling:*",
          "cloudwatch:DeleteAlarms",
          "cloudwatch:DescribeAlarmsForMetric",
          "cloudwatch:DisableAlarmActions",
          "cloudwatch:DescribeAlarms",
          "cloudwatch:EnableAlarmActions",
          "cloudwatch:ListMetrics",
          "cloudwatch:PutMetricAlarm",
          "iam:ListRoles"
      ],
      "Resource": "*"
    },
    {
      "Sid": "iamPassRole",
      "Effect": "Allow",
      "Action": [
          "iam:PassRole"
      ],
      "Resource": "*",
      "Condition": {
         "StringEquals": {
             "iam:PassedToService": "application-autoscaling.amazonaws.com"
          }
      }
    }
  ]
}
```

------

独自の IAM ポリシーを作成して、Application Auto Scaling API への呼び出しに対してより具体的なアクセス許可を設定することもできます。詳細については、アプリケーションの Auto Scaling ユーザーガイドの「認証とアクセスコントロール」を参照してください。[https://docs.aws.amazon.com/autoscaling/application/userguide/auth-and-access-control.html](https://docs.aws.amazon.com/autoscaling/application/userguide/auth-and-access-control.html)**

# IAM ポリシーを使用したホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットへの管理者アクセスの管理
<a name="s3-iam-policy"></a>

次の例では、IAM ポリシーを使用して、ホームフォルダとアプリケーション設定の永続化のために Amazon S3 バケットへのアクセスを管理する方法を示します。

**Topics**
+ [

# ホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットの削除
](s3-iam-policy-delete.md)
+ [

# ホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットへの管理者アクセスの制限
](s3-iam-policy-restricted-access.md)

# ホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットの削除
<a name="s3-iam-policy-delete"></a>

WorkSpaces Applications は、作成するバケットに Amazon S3 バケットポリシーを追加して、誤って削除されないようにします。S3 バケットを削除するには、最初に S3 バケットポリシーを削除する必要があります。ホームフォルダおよびアプリケーション設定の永続化用のバケットポリシーとして削除するものは、以下のとおりです。

**ホームフォルダポリシー**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PreventAccidentalDeletionOfBucket",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:DeleteBucket",
      "Resource": "arn:aws:s3:::appstream2-36fb080bb8-region-code-123456789012-without-hyphens"
    }
  ]
}
```

------

**アプリケーション設定の永続化ポリシー**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PreventAccidentalDeletionOfBucket",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:DeleteBucket",
      "Resource": "arn:aws:s3:::appstream-app-settings-region-code-123456789012-without-hyphens-unique-identifier"
     }
   ]
}
```

------

 詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[Deleting or Emptying a Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html)」を参照してください。

# ホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットへの管理者アクセスの制限
<a name="s3-iam-policy-restricted-access"></a>

デフォルトでは、WorkSpaces アプリケーションによって作成された Amazon S3 バケットにアクセスできる管理者は、ユーザーのホームフォルダおよび永続的なアプリケーション設定の一部であるコンテンツを表示および変更できます。ユーザーファイルが含まれている S3 バケットへの管理者アクセスを制限するには、次のテンプレートに基づく S3 バケットアクセスポリシーを適用することをお勧めします。

```
{
  "Sid": "RestrictedAccess",
  "Effect": "Deny",
  "NotPrincipal": 
  {
    "AWS": [
      "arn:aws:iam::account:role/service-role/AmazonAppStreamServiceAccess",
      "arn:aws:sts::account:assumed-role/AmazonAppStreamServiceAccess/PhotonSession",
      "arn:aws:iam::account:user/IAM-user-name"
    ]
  },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::home-folder-or-application-settings-persistence-s3-bucket-region-account"
  }
 ]
}
```

このポリシーは、指定されたユーザーと WorkSpaces アプリケーションサービスへの S3 バケットアクセスのみを許可します。アクセス権が必要な IAM ユーザーごとに、次の行をレプリケートします。

```
"arn:aws:iam::account:user/IAM-user-name"
```

次のポリシー例では、marymajor と johnstiles を除くすべての IAM ユーザーに対して、ホームフォルダの S3 バケットへのアクセスを制限します。また、アカウント ID 123456789012 の米国西部 (オレゴン) AWS リージョンの WorkSpaces アプリケーションサービスへのアクセスも許可します。

```
{
  "Sid": "RestrictedAccess",
  "Effect": "Deny",
  "NotPrincipal": 
  {
    "AWS": [
      "arn:aws:iam::123456789012:role/service-role/AmazonAppStreamServiceAccess",
      "arn:aws:sts::123456789012:assumed-role/AmazonAppStreamServiceAccess/PhotonSession",
      "arn:aws:iam::123456789012:user/marymajor",
      "arn:aws:iam::123456789012:user/johnstiles"
    ]
  },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::appstream2-36fb080bb8-us-west-2-123456789012"
  }
 ]
}
```

# IAM ロールを使用して WorkSpaces アプリケーションストリーミングインスタンスで実行されるアプリケーションとスクリプトにアクセス許可を付与する
<a name="using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances"></a>

WorkSpaces アプリケーションストリーミングインスタンスで実行されるアプリケーションとスクリプトには、 AWS API リクエストに AWS 認証情報を含める必要があります。IAM ロールを作成して、これらの認証情報を管理できます。IAM ロールは、 AWS リソースへのアクセスに使用できる一連のアクセス許可を指定します。ただし、このロールは 1 人のユーザーに一意に関連付けられるわけではありません。代わりに、それを必要とするすべてのユーザーが引き受けることができます。

WorkSpaces アプリケーションストリーミングインスタンスに IAM ロールを適用できます。ストリーミングインスタンスがロールに切り替える (引き受ける) と、ロールは一時的なセキュリティ認証情報を提供します。アプリケーションまたはスクリプトはこれらの認証情報を使用して、ストリーミングインスタンスで API アクションおよび管理タスクを実行します。WorkSpaces アプリケーションは、一時的な認証情報スイッチを管理します。

**Topics**
+ [

# WorkSpaces アプリケーションストリーミングインスタンスで IAM ロールを使用するためのベストプラクティス
](best-practices-for-using-iam-role-with-streaming-instances.md)
+ [

# WorkSpaces アプリケーションストリーミングインスタンスで使用する既存の IAM ロールの設定
](configuring-existing-iam-role-to-use-with-streaming-instances.md)
+ [

# WorkSpaces アプリケーションストリーミングインスタンスで使用する IAM ロールを作成する方法
](how-to-create-iam-role-to-use-with-streaming-instances.md)
+ [

# WorkSpaces アプリケーションストリーミングインスタンスで IAM ロールを使用する方法
](how-to-use-iam-role-with-streaming-instances.md)

# WorkSpaces アプリケーションストリーミングインスタンスで IAM ロールを使用するためのベストプラクティス
<a name="best-practices-for-using-iam-role-with-streaming-instances"></a>

WorkSpaces アプリケーションストリーミングインスタンスで IAM ロールを使用する場合は、次のプラクティスに従うことをお勧めします。
+  AWS API アクションとリソースに付与するアクセス許可を制限します。

  WorkSpaces アプリケーションストリーミングインスタンスに関連付けられた IAM ロールに IAM ポリシーを作成してアタッチするときは、最小特権の原則に従います。 AWS API アクションまたはリソースへのアクセスを必要とするアプリケーションまたはスクリプトを使用する場合は、必要な特定のアクションとリソースを決定します。次に、アプリケーションまたはスクリプトがこれらのアクションのみを実行できるようにするポリシーを作成します。詳細については、*「IAM ユーザーガイド」*の[「Grant Least Privilege」](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)(最小権限を付与する) を参照してください。
+ WorkSpaces Applications リソースごとに IAM ロールを作成します。

  WorkSpaces Applications リソースごとに一意の IAM ロールを作成することは、最小特権の原則に従うプラクティスです。これにより、他のリソースに影響を与えることなく、リソースのアクセス許可を変更することもできます。
+ 認証情報を使用できる場所を制限します。

  IAM ポリシーでは、IAM ロールを使用してリソースにアクセスするための条件を定義できます。たとえば、リクエスト元の IP アドレスの範囲を指定する条件を含めることができます。これにより、認証情報が環境外で使用されなくなります。詳細については、*IAM ユーザーガイド*の「[追加セキュリティに対するポリシー条件を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#use-policy-conditions)」を参照してください。

# WorkSpaces アプリケーションストリーミングインスタンスで使用する既存の IAM ロールの設定
<a name="configuring-existing-iam-role-to-use-with-streaming-instances"></a>

このトピックでは、Image Builder およびフリートストリーミングインスタンスで使用できるように、既存の IAM ロールを設定する方法について説明します。

**前提条件**

WorkSpaces Applications Image Builder またはフリートストリーミングインスタンスで使用する IAM ロールは、次の前提条件を満たす必要があります。
+ IAM ロールは、WorkSpaces アプリケーションストリーミングインスタンスと同じ Amazon Web Services アカウントに存在する必要があります。
+ IAM ロールをサービスロールにすることはできません。
+ IAM ロールにアタッチされている信頼関係ポリシーには、WorkSpaces アプリケーションサービスをプリンシパルとして含める必要があります。*プリンシパル*は、アクションを実行し AWS 、リソースにアクセスできる のエンティティです。ポリシーには `sts:AssumeRole` アクションも含める必要があります。このポリシー設定では、WorkSpaces アプリケーションを信頼されたエンティティとして定義します。

  
+ Image Builder に IAM ロールを適用する場合、Image Builder は 2019 年 9 月 3 日以降にリリースされたバージョンの WorkSpaces Applications エージェントを実行する必要があります。フリートに IAM ロールを適用する場合、フリートは同じ日付以降にリリースされたバージョンのエージェントを使用するイメージを使用する必要があります。詳細については、「[WorkSpaces アプリケーションエージェントのリリースノート](agent-software-versions.md)」を参照してください。

**WorkSpaces Applications サービスプリンシパルが既存の IAM ロールを引き受けるようにするには**

以下のステップを実行するには、IAM ロールを一覧表示および更新するために必要なアクセス許可を持つ IAM ユーザーとしてアカウントにサインインする必要があります。必要なアクセス許可がない場合は、お客様の Amazon Web Services アカウント管理者に対し、アカウントでこれらのステップを実行するか、必要なアクセス許可をお客様に付与するかのどちらかを依頼します。

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. アカウントのロールの一覧で、変更するロールの名前を選択します。

1. [**Trust relationships**] タブを選択し、続いて [**Edit trust relationship**] を選択します。

1. [**Policy Document (ポリシードキュメント)**]で、信頼関係ポリシーに `appstream.amazonaws.com` サービスプリンシパルの `sts:AssumeRole` アクションが含まれていることを確認します。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "appstream.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 信頼ポリシーの編集を完了したら、[**信頼ポリシーの更新**] を選択して変更を保存します。

1. 選択した IAM ロールが WorkSpaces アプリケーションコンソールに表示されます。このロールは、ストリーミングインスタンスで API アクションおよび管理タスクを実行するアクセス許可をアプリケーションとスクリプトに付与します。

# WorkSpaces アプリケーションストリーミングインスタンスで使用する IAM ロールを作成する方法
<a name="how-to-create-iam-role-to-use-with-streaming-instances"></a>

このトピックでは、Image Builder およびフリートストリーミングインスタンスで使用できるように、新しい IAM ロールを作成する方法について説明します。

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

1. ナビゲーションペインで **[Roles]** (ロール) を選択してから、**[Create role]** (ロールを作成する) を選択します。

1. **信頼できるエンティティの種類の選択** で、**AWS サービス** を選択します。

1.  AWS サービスのリストから、**WorkSpaces アプリケーション**を選択します。

1. **「ユースケースの選択**」で、**WorkSpaces アプリケーション — WorkSpaces アプリケーションインスタンスがユーザーに代わって AWS サービスを呼び出すことを**許可はすでに選択されています。**[Next: Permissions]** (次のステップ: 許可) を選択します。

1. 可能な場合は、アクセス許可ポリシーとして使用するポリシーを選択するか、[**ポリシーの作成**] を選択して新しいブラウザタブを開き、新しいポリシーをゼロから作成します。詳細については、*IAM ユーザーガイド*の「[IAM ポリシーの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)」のステップ 4 を参照してください。

   ポリシーを作成したら、そのタブを閉じて元のタブに戻ります。WorkSpaces アプリケーションに付与するアクセス許可ポリシーの横にあるチェックボックスをオンにします。

1. (オプション) アクセス許可の境界を設定します。このアドバンスド機能は、サービスロールで使用できますが、サービスにリンクされたロールではありません。詳細については、*IAM ユーザーガイド*の「[IAM エンティティのアクセス許可境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。

1. **[Next: Tags]** (次へ: タグ) を選択します。オプションで、タグをキーと値のペアとしてアタッチできます。詳細については、*IAM ユーザーガイド*の「[IAM リソースのタグ付け](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)」を参照してください。

1. **[次へ: レビュー]** を選択します。

1. [**Role name**] (ロール名) に、Amazon Web Services アカウント内で一意のロール名を入力します。他の AWS リソースはロールを参照する可能性があるため、作成後にロールの名前を編集することはできません。

1. [**ロールの説明**] に、デフォルトのロールの説明をそのまま使用するか、新しいロールの説明を入力します。

1. ロールを確認したら、**[ロールを作成]** を選択します。

# WorkSpaces アプリケーションストリーミングインスタンスで IAM ロールを使用する方法
<a name="how-to-use-iam-role-with-streaming-instances"></a>

IAM ロールを作成したら、Image Builder を起動するとき、またはフリートを作成するときに、そのロールを Image Builder またはフリートストリーミングインスタンスに適用できます。既存のフリートに IAM ロールを適用することもできます。Image Builder を起動するときに IAM ロールを適用する方法については、[Image Builder を起動し、ストリーミングアプリケーションをインストールして設定する](tutorial-image-builder-create.md) を参照してください。フリートを作成するときに IAM ロールを適用する方法については、[Amazon WorkSpaces アプリケーションでフリートを作成する](set-up-stacks-fleets-create.md) を参照してください。

Image Builder またはフリートストリーミングインスタンスに IAM ロールを適用すると、WorkSpaces Applications は一時的な認証情報を取得し、インスタンスに **appstream\$1machine\$1role** 認証情報プロファイルを作成します。一時的な認証情報は 1 時間有効で、新しい認証情報は 1 時間ごとに取得されます。以前の認証情報は失効しないため、有効である限り使用できます。認証情報プロファイルを使用して、選択した言語で コマンドラインインターフェイス (AWS CLI)、 AWS Tools for PowerShell、または AWS SDK AWS を使用してプログラムで AWS サービスを呼び出すことができます。

API コールを行う場合、認証情報プロファイルとして **appstream\$1machine\$1role** を指定します。それ以外の場合、アクセス許可が不十分なため、オペレーションは失敗します。

WorkSpaces アプリケーションは、ストリーミングインスタンスのプロビジョニング中に指定されたロールを引き受けます。WorkSpaces Applications は VPC にアタッチされている Elastic Network Interface を AWS API コールに使用するため、アプリケーションまたはスクリプトは、Elastic Network Interface が使用可能になるまで待ってから AWS API コールを行う必要があります。Elastic Network Interface が使用可能になる前に API 呼び出しが行われると、呼び出しは失敗します。

以下の例では、**appstream\$1machine\$1role** 認証情報プロファイルを使用して、ストリーミングインスタンス (EC2 インスタンス) を記述し、Boto クライアントを作成する方法を示します。Boto は、Amazon Web Services (AWS) SDK for Python です。

**CLI を使用してストリーミングインスタンス (EC2 インスタンス) AWS を記述する**

```
aws ec2 describe-instances --region us-east-1 --profile appstream_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](https://aws.amazon.com/powershell/) ウェブサイトからダウンロードできます。

```
Get-EC2Instance -Region us-east-1 -ProfileName appstream_machine_role
```

** AWS SDK for Python を使用した Boto クライアントの作成**

```
session = boto3.Session(profile_name='appstream_machine_role')
```

# Red Hat Enterprise Linux および Rocky Linux の SELinux
<a name="selinux"></a>

デフォルトでは、Security Enhanced Linux (SELinux) は で、Red Hat Enterprise Linux `enabled` と Rocky Linux を搭載した WorkSpaces Applications Image Builder とストリーミングインスタンスの `enforcing` モードに設定されています。`enforcing` モードでは、アクセスの拒否が強制されます。SELinux は、カーネルの主要なサブシステムに強力で柔軟性のある強制アクセス制御 (MAC) アーキテクチャを提供するためのカーネル機能とユーティリティの集まりです。

SELinux は、機密性と完全性の要件に基づいて情報を分離するように強化されたメカニズムを備えています。このように情報を分離することで、アプリケーションのセキュリティメカニズムの改ざんやバイパスの脅威が軽減されます。また、悪意のあるアプリケーションや欠陥のあるアプリケーションによって引き起こされる可能性のあるダメージも回避できます。

SELinux には、日々のセキュリティの目標を満たすように設計されたサンプルセキュリティポリシー設定ファイルのセットが含まれています。SELinux の機能と機能の詳細については、「[SELinux とは](https://www.redhat.com/en/topics/linux/what-is-selinux)」を参照してください。

# Amazon WorkSpaces アプリケーションでの Cookie ベースの認証
<a name="cookie-auth"></a>

WorkSpaces Applications はブラウザ Cookie を使用してストリーミングセッションを認証し、ユーザーがサインイン認証情報を毎回再入力することなく、アクティブなセッションに再接続できるようにします。認証トークンは、すべての認証シナリオについてブラウザ Cookie に保存されます。Cookie は多くのオンラインサービスに必要ですが、Cookie 盗難攻撃に対して脆弱である可能性があります。ユーザーのデバイスに堅牢なエンドポイント保護ソリューションを実装するなど、Cookie の盗難を防ぐための予防的な対策を講じることを強くお勧めします。さらに、Cookie の盗難による潜在的な影響を軽減するために、以下のアクションを検討することをお勧めします。
+ **シングルセッション制限を適用する**: WorkSpaces Applications Windows イメージの場合、一度に 1 つの接続のみを許可するように、**max-concurrent-clients** という名前`HKEY_USERS\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management`を 1 に設定して にレジストリキーを作成します。これにより、同時セッションの数が 1 に制限され、アクティブなセッションのミラーリングがブロックされます。詳細については、「[session-management パラメータ](https://docs.aws.amazon.com/dcv/latest/adminguide/config-param-ref.html#session_management)」を参照してください。
+ **セッションの有効期限と再認証を強制する**
  + ユーザーがストリーミングセッションを正常に開始した後に認証トークンの有効期限が切れるように、SessionDuration 値を小さくします。sessionDuration の有効期限が切れた後に認証 Cookie を再利用するには、ユーザーが自身を再認証する必要があります。SessionDuration は、再認証が必要となるまでに、ユーザーのフェデレーティッドストリーミングセッションをアクティブにしておくことができる最大時間を指定します。デフォルト値は 60 分です。詳細については、「[ステップ 5: SAML 認証レスポンスのアサーションを作成する](external-identity-providers-setting-up-saml.md#external-identity-providers-create-assertions)」を参照してください。
  + セキュリティを最大化するために、ユーザーはストリーミングウィンドウを閉じるのではなく、ツールバー (セッションを終了) でセッションを適切に終了する必要があります。ツールバーを使用してセッションを終了すると、ユーザーセッションとストリーミングインスタンスの両方が終了します。そのためには、今後のアクセスのために再認証が必要であり、Cookie の誤用を防ぎます。ユーザーがセッションを終了せずにストリーミングウィンドウを閉じると、セッションとインスタンスは設定可能な切断タイムアウト期間 (分単位) の間アクティブのままになります。切断タイムアウトは 1～5760 の数値で、デフォルト値は 15 分である必要があります。非アクティブなセッションの誤用を防ぐため、短い切断タイムアウトを設定することをお勧めします。詳細については、「[Amazon WorkSpaces アプリケーションでフリートを作成する](set-up-stacks-fleets-create.md)」を参照してください。
+ **WorkSpaces アプリケーションのストリーミングへのアクセスを IP 範囲に制限する**: IP ベースの IAM ポリシーを実装することをお勧めします。これにより、IP アドレスが承認された IP 範囲に属するクライアントからのみ WorkSpaces アプリケーションセッションにアクセスできます。クライアントの IP アドレスが認可範囲外であるユーザーが開始した接続試行はすべて、それ以外の有効な認証 Cookie (ユーザーから盗まれた可能性がある) を提示している場合でも拒否されます。詳細については、「[Limit access to stream Amazon AppStream 2.0 applications to your IP ranges](https://aws.amazon.com/blogs/desktop-and-application-streaming/limit-access-to-stream-amazon-appstream-2-0-applications-to-your-ip-ranges/)」を参照してください。
+ **追加の認証を追加する**: ドメイン結合ストリーミングインスタンスを起動するには、WorkSpaces Applications Always-On およびオンデマンドの Windows フリートと Image Builder を Microsoft Active Directory のドメインに結合し、クラウドベースのドメインまたはオンプレミスの既存の Active Directory ドメインを使用できます。最初の SAML ベースの認証後、ユーザーは組織ドメインに対する追加の認証のためにドメイン認証情報を提供するように求められます。詳細については、「[Using Active Directory with WorkSpaces Applications](active-directory.md)」を参照してください。

 心配なことやサポートが必要な場合は、[AWS サポート センター](https://console.aws.amazon.com/support/home#/)にお問い合わせください。

# Amazon AppStream 2.0 でのログ記録とモニタリング
<a name="logging-monitoring-alerting"></a>

モニタリングは、Amazon AppStream 2.0 の信頼性、可用性、パフォーマンスを維持する上で重要な部分です。このトピックでは、AppStream 2.0 リソースをモニタリングし、潜在的なインシデントに対応するために AWS が提供するサービスとツールについて説明します。

**Amazon CloudWatch アラーム**  
Amazon CloudWatch アラームを使用して、指定した期間にわたって 1 つのメトリクスを確認できます。メトリクスが特定のしきい値を超えると、Amazon Simple Notification Service のトピックまたは AWS Auto Scaling ポリシーに通知が送信されます。CloudWatch アラームは、特定の状態にあるアクションを呼び出しません。その代わり、状態が変更され、指定期間にわたって維持される必要があります。詳細については、「[Amazon WorkSpaces アプリケーションリソースのモニタリング](monitoring.md)」を参照してください。  
現在、AppStream 2.0 は CloudWatch Events のターゲットとして設定できません。CloudWatch Events のターゲットとして設定できるサービスのリストについては、[What Is Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) を参照してください。

**AWS CloudTrail**  
AWS CloudTrail は、AppStream 2.0 のユーザー、ロール、または AWS のサービスによって実行されたアクションの記録を提供します。これにより、AppStream 2.0 に対して行われたリクエスト、リクエスト元の IP アドレス、リクエストの実行者、リクエストの実行日時、および追加の詳細を判別できます。詳細については、「[AppStream 2.0 API 呼び出しの AWS CloudTrail でのログ記録](logging-using-cloudtrail.md)」を参照してください。

**AWS Trusted Advisor**  
AWS Trusted Advisor では AWS 環境を検査し、コストの削減、システムの可用性とパフォーマンスの向上、またはセキュリティギャップの解消につながる方法を推奨しています。Trusted Advisor は、さまざまな AWS のお客様から収集されたベストプラクティスを使用します。すべての AWS のお客様は、Trusted Advisor の 5 つのチェックにアクセスできます。ビジネスまたはエンタープライズサポートプランをお持ちの場合は、すべての Trusted Advisor チェックを表示できます。  
[アプリケーション設定の永続化を有効にする、](how-it-works-app-settings-persistence.md)またはユーザーの[ホームフォルダ](home-folders-admin.md)を有効にすると、ユーザーが生成したデータは Amazon S3 バケットに保存されます。Trusted Advisor には、Amazon S3 に関連する次の確認事項が含まれています。  
+ Amazon S3 バケットのログ記録設定のチェック。
+ オープンなアクセス許可がある Amazon S3 バケットのセキュリティチェック。
+ バージョニングが有効になっていない、またはバージョニングが停止されている Amazon S3 バケットの耐障害性チェック。
詳細については、*AWS サポート ユーザーガイド*の [AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor.html) を参照してください。

**Amazon S3 アクセスログ**  
ユーザーがアプリケーション設定データまたはホームフォルダのデータを Amazon S3 バケットに保存している場合は、Amazon S3 サーバーアクセスログを表示してアクセスをモニタリングすることを検討してください。これらのログでは、バケットに対して行われたリクエストの詳細なレコードが提供されます。サーバーアクセスのログは、多くのアプリケーションに役立ちます。例えば、アクセスのログ情報は、セキュリティやアクセスの監査に役立ちます。詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[Amazon S3 Server Access Logging](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html)」を参照してください。

**AppStream 2.0 使用状況レポート**  
AppStream 2.0 使用状況レポートをサブスクライブして、ユーザーがサービスをどのように使用しているかについて詳細なレポートを受け取ることができます。レポートには、ユーザーがストリーミングする時間と、ユーザーが起動するアプリケーションが含まれます。詳細については、「[WorkSpaces アプリケーション使用状況レポート](configure-usage-reports.md)」を参照してください。

# Amazon AppStream 2.0 のコンプライアンスの検証
<a name="compliance-validation"></a>

Amazon AppStream 2.0 のセキュリティとコンプライアンスは、AWS のさまざまなコンプライアンスプログラムの一環として、第三者の監査機関によって評価されます。これには、[SOC](https://aws.amazon.com/compliance/soc-faqs/)、[PCI](https://aws.amazon.com/compliance/pci-dss-level-1-faqs)、[ISO](https://aws.amazon.com/compliance/iso-certified/)、[FedRAMP](https://aws.amazon.com/compliance/fedramp/)、[HIPAA](https://aws.amazon.com/compliance/hipaa-compliance/)、[MTCS](https://aws.amazon.com/compliance/aws-multitiered-cloud-security-standard-certification/)、[ENS High](https://aws.amazon.com/compliance/esquema-nacional-de-seguridad/)、[HITRUST CSF](https://aws.amazon.com/compliance/hitrust/)、[VPAT](https://aws.amazon.com/compliance/vpat/) などがあります。

**注記**  
AppStream 2.0 は [FIPS 140-2](https://aws.amazon.com/compliance/fips/) をサポートしています。管理用またはストリーミング用に AppStream 2.0 FIPS エンドポイントを使用する方法については、[FIPS エンドポイントを使用した転送中のデータの保護](protecting-data-in-transit-FIPS-endpoints.md) を参照してください。  
AppStream 2.0 は、[国防総省 (DoD) クラウドコンピューティングセキュリティ要求事項ガイド (SRG)](https://aws.amazon.com/compliance/dod/) の評価も受けています。

特定のコンプライアンスプログラムの対象となる AWS サービスのリストについては、「[コンプライアンスプログラムによる AWS 対象範囲内のサービス](https://aws.amazon.com/compliance/services-in-scope/)」を参照してください。一般的な情報については、「[AWS コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)」を参照してください。

AWS Artifact を使用して、サードパーティーの監査レポートをダウンロードできます。詳細については、[AWS Artifactにおけるレポートのダウンロード](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)を参照してください。

AppStream 2.0 を使用する際のお客様のコンプライアンス責任は、データの機密性、企業のコンプライアンス目的、適用法規によって決まります。AWS は、コンプライアンスに役立つ次のリソースを提供しています。
+ [セキュリティ＆コンプライアンス クイックリファレンスガイド](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) – これらのデプロイガイドには、アーキテクチャ上の考慮事項の説明と、AWS でセキュリティとコンプライアンスに重点を置いたベースライン環境をデプロイするためのステップが記載されています。
+ [HIPAA セキュリティおよびコンプライアンスホワイトペーパーのアーキテクチャの設計](https://d0.awsstatic.com/whitepapers/compliance/AWS_HIPAA_Compliance_Whitepaper.pdf) - このホワイトペーパーでは、企業が AWS を使用して HIPAA 準拠のアプリケーションを作成する方法について説明します。
+ [AWS コンプライアンスのリソース](https://aws.amazon.com/compliance/resources/) - このワークブックおよびガイドのコレクションは、ユーザーの業界や地域で使用できるかもしれません。
+ 「*AWS Config デベロッパーガイド*」の「[ルールによるリソースの評価](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html)」 - AWS Config サービスでは、リソースの設定が社内プラクティス、業界ガイドライン、および規制にどの程度準拠しているかを評価します。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) - この AWS サービスは、AWS 内でのユーザーのセキュリティ状態に関する包括的な見解を提供し、業界のセキュリティスタンダード、およびベストプラクティスに対するコンプライアンスを確認するために役立ちます。

# Amazon AppStream 2.0 の耐障害性
<a name="disaster-recovery-resiliency"></a>

AWS のグローバルインフラストラクチャは、AWS リージョンとアベイラビリティーゾーンを中心として構築されています。リージョンには、低レイテンシー、高いスループット、そして高度の冗長ネットワークで接続されている複数の物理的に独立および隔離されたアベイラビリティーゾーンがあります。アベイラビリティーゾーンでは、ゾーン間で中断することなく自動的にフェイルオーバーするアプリケーションとデータベースを設計および運用することができます。アベイラビリティーゾーンは、従来の単一または複数のデータセンターインフラストラクチャよりも可用性、耐障害性、および拡張性が優れています。

AWS リージョンとアベイラビリティーゾーンの詳細については、[AWS グローバルインフラストラクチャ](https://aws.amazon.com/about-aws/global-infrastructure/)を参照してください。

# Amazon AppStream 2.0 のインフラストラクチャセキュリティ
<a name="infrastructure-security"></a>

マネージドサービスである Amazon AppStream 2.0 は、AWS グローバルネットワークセキュリティで保護されています。AWS セキュリティサービスと AWS がインフラストラクチャを保護する方法については「[AWS クラウドセキュリティ](https://aws.amazon.com/security/)」を参照してください。インフラストラクチャセキュリティのベストプラクティスを使用して AWS 環境を設計するには「*セキュリティの柱 - AWS 適切なアーキテクチャを備えたフレームワーク*」の「[インフラストラクチャの保護](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)」を参照してください。

ユーザーは、AWS が公開した API 呼び出しを使用して、ネットワーク経由で AppStream 2.0 にアクセスします。クライアントは以下をサポートする必要があります。
+ Transport Layer Security (TLS)。TLS 1.2 が必須で、TLS 1.3 をお勧めします。
+ DHE (楕円ディフィー・ヘルマン鍵共有) や ECDHE (楕円曲線ディフィー・ヘルマン鍵共有) などの完全前方秘匿性 (PFS) による暗号スイート。これらのモードは Java 7 以降など、ほとんどの最新システムでサポートされています。

次のトピックでは、AppStream 2.0 インフラストラクチャセキュリティに関する追加情報を提供します。

**Topics**
+ [

# ネットワークの隔離
](network-isolation.md)
+ [

# 物理ホストでの分離
](physical-isolation.md)
+ [

# ネットワークトラフィックの制御
](control-network-traffic.md)
+ [

# WorkSpaces アプリケーションインターフェイス VPC エンドポイント
](interface-vpc-endpoints.md)
+ [

# FIPS エンドポイントを使用した転送中のデータの保護
](protecting-data-in-transit-FIPS-endpoints.md)

# ネットワークの隔離
<a name="network-isolation"></a>

Virtual Private Cloud (VPC) は、Amazon Web Services クラウド内の論理的に隔離された領域にある仮想ネットワークです。ワークロードまたは組織エンティティ単位でインフラストラクチャを隔離するには、個別の VPC を使用します。

サブネットはある範囲の IP アドレスが示す VPC 内の領域です。インスタンスを起動する場合にはVPC 内のあるサブネットにおいて起動することになります。サブネットを使用すると、単一の VPC 内で多階層ウェブアプリケーションの各階層 (ウェブサーバー、アプリケーションサーバーおよびデータベースサーバーなど) を隔離できます。インターネットからの直接アクセスを認めるべきでないインスタンスには、プライベートサブネットを使用します。

パブリックインターネットを経由せずに、VPC 内の AppStream 2.0 ストリーミングインスタンスからストリーミングできます。これを行うには、インターフェイス VPC エンドポイント（インターフェイスエンドポイント）を使用します。詳細については、[チュートリアル: インターフェイス VPC エンドポイントからの作成とストリーミング](creating-streaming-from-interface-vpc-endpoints.md) を参照してください。

また、インターフェイスエンドポイントを使用して、パブリックインターネット経由でトラフィックを送信せずに VPC から AppStream 2.0 API オペレーションを呼び出すことができます。詳細については、[インターフェイス VPC エンドポイントを介して WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスする](access-api-cli-through-interface-vpc-endpoint.md) を参照してください。

# 物理ホストでの分離
<a name="physical-isolation"></a>

同じ物理ホストで実行される異なるストリーミングインスタンスは、個別の物理ホストで実行されるかのように隔離されます。ハイパーバイザーが CPU およびメモリを隔離し、各インスタンスには、生ディスクデバイスへのアクセスに代わる仮想ディスクへのアクセスが提供されます。

ストリーミングインスタンスを停止または終了すると、そのストリーミングインスタンスに割り当てられていたメモリをハイパーバイザーがスクラブ（ゼロに設定するということです）し、そのメモリが新たなインスタンスに割り当てられ、すべてのストレージブロックがリセットされます。これにより、データが別のインスタンスに公開されることがなくなります。

# ネットワークトラフィックの制御
<a name="control-network-traffic"></a>

AppStream 2.0 ストリーミングインスタンスへのネットワークトラフィックを制御するには、次のオプションを検討してください。
+ Amazon AppStream ストリーミングインスタンスを起動する場合には、VPC 内のあるサブネットにおいて起動することになります。インターネットからアクセスできないようにするには、プライベートサブネットにストリーミングインスタンスをデプロイします。
+ プライベートサブネットのストリーミングインスタンスへのインターネットアクセスを提供するには、NAT ゲートウェイを使用します。詳細については、[プライベートサブネットの VPC および NAT ゲートウェイを設定する](managing-network-internet-NAT-gateway.md) を参照してください。
+ VPC に属するセキュリティグループにより、AppStream 2.0 ストリーミングインスタンスと、ライセンスサーバー、ファイルサーバー、データベースサーバーなどの VPC リソースの間でネットワークトラフィックを制御できます。また、セキュリティグループは、ストリーミングインスタンスと AppStream 2.0 管理サービス間のトラフィックを分離します。

  セキュリティグループを使用して、ストリーミングインスタンスへのアクセスを制限します。この方法を使うと、たとえば、社内ネットワークのアドレス範囲に属するアドレスからのトラフィックのみ認めるといったことができます。詳細については、[Amazon WorkSpaces アプリケーションのセキュリティグループ](managing-network-security-groups.md) を参照してください。
+ パブリックインターネットを経由せずに、VPC 内の AppStream 2.0 ストリーミングインスタンスからストリーミングできます。これを行うには、インターフェイス VPC エンドポイント（インターフェイスエンドポイント）を使用します。詳細については、[チュートリアル: インターフェイス VPC エンドポイントからの作成とストリーミング](creating-streaming-from-interface-vpc-endpoints.md) を参照してください。

  また、インターフェイスエンドポイントを使用して、パブリックインターネット経由でトラフィックを送信せずに VPC から AppStream 2.0 API オペレーションを呼び出すことができます。詳細については、[インターフェイス VPC エンドポイントを介して WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスする](access-api-cli-through-interface-vpc-endpoint.md) を参照してください。
+ IAM ロールとポリシーを使用して、AppStream 2.0、Application Auto Scaling、および Amazon S3 バケットへの管理者アクセスを管理します。詳細については、次のトピックを参照してください。
  + [AWS マネージドポリシーとリンクされたロールを使用して WorkSpaces アプリケーションリソースへの管理者アクセスを管理する](controlling-administrator-access-with-policies-roles.md)
  + [IAM ポリシーを使用して Application Auto Scaling への管理者アクセスを管理する](autoscaling-iam-policy.md)
  + [ホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットへの管理者アクセスの制限](s3-iam-policy-restricted-access.md)
+ SAML 2.0 を使用して、認証を AppStream 2.0 にフェデレートできます。詳細については、[Amazon WorkSpaces Applications Service Quotas](limits.md) を参照してください。
**注記**  
小規模な AppStream 2.0 デプロイの場合は、AppStream 2.0 ユーザープールを使用できます。デフォルトでは、ユーザープールは最大 50 人のユーザーをサポートします。AppStream 2.0 クォータ (制限とも呼ばれる) の詳細については、[Amazon WorkSpaces Applications Service Quotas](limits.md) を参照してください。100 人以上の AppStream 2.0 ユーザーをサポートする必要があるデプロイメントの場合は、SAML 2.0 を使用することをお勧めします。

# WorkSpaces アプリケーションインターフェイス VPC エンドポイント
<a name="interface-vpc-endpoints"></a>

Virtual Private Cloud (VPC) は、Amazon Web Services クラウド内の論理的に隔離された領域にある仮想ネットワークです。Amazon Virtual Private Cloud を使用してAWSリソースをホストする場合、VPC と WorkSpaces アプリケーションの間にプライベート接続を確立できます。この接続を使用して、WorkSpaces アプリケーションがパブリックインターネットを経由せずに VPC 上のリソースと通信できるようにします。

インターフェイスエンドポイントは、プライベート IP アドレスを使用して指定した VPC 内でトラフィックをストリーミングできるテクノロジーである AWSPrivateLink を利用しています。Direct Connectまたは AWS Virtual Private Networkトンネルで VPC を使用する場合、ストリーミングトラフィックをネットワーク内に保持できます。

以下のトピックでは、WorkSpaces アプリケーションインターフェイスエンドポイントについて説明します。

**Topics**
+ [

# チュートリアル: インターフェイス VPC エンドポイントからの作成とストリーミング
](creating-streaming-from-interface-vpc-endpoints.md)
+ [

# インターフェイス VPC エンドポイントを介して WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスする
](access-api-cli-through-interface-vpc-endpoint.md)

# チュートリアル: インターフェイス VPC エンドポイントからの作成とストリーミング
<a name="creating-streaming-from-interface-vpc-endpoints"></a>

Amazon Web Services アカウントのインターフェイス VPC エンドポイントを使用して、Amazon VPC と WorkSpaces アプリケーション間のすべてのネットワークトラフィックを Amazon ネットワークに制限できます。このエンドポイントを作成したら、それを使用するように WorkSpaces Applications スタックまたは Image Builder を設定します。

**前提条件**

WorkSpaces アプリケーションのインターフェイス VPC エンドポイントを設定する前に、次の前提条件に注意してください。
+ インターネット接続は、ユーザーを認証し、WorkSpaces アプリケーションが機能するために必要なウェブアセットを配信するために必要です。ストリーミングインターフェイスエンドポイントは、VPC 内のストリーミングトラフィックを維持します。ストリーミングトラフィックには、ピクセル、USB、ユーザー入力、オーディオ、クリップボード、ファイルのアップロードとダウンロード、プリンターのトラフィックが含まれます。このトラフィックを許可するには、「[許可されたドメイン](allowed-domains.md)」に示されたドメインを許可する必要があります。VPC エンドポイントを作成したら、WorkSpaces Applications ユーザー認証ドメインを許可する必要があります。ただし、ストリーミングゲートウェイでは、アクセスを <vpc-endpoint-id>.streaming.appstream.<aws-region>.vpce.amazonaws.com のみに制限できます。\$1.amazonappstream.com への許可リスト登録は必要ありません。VPC エンドポイントの完全修飾ドメイン名は、その依存関係を置き換えます。
+ ユーザーのデバイスが接続されているネットワークは、インターフェイスエンドポイントにトラフィックをルーティングできる必要があります。
+ インターフェイスエンドポイントに関連付けられているセキュリティグループは、ユーザーが接続する IP アドレス範囲からポート 443(TCP) とポート 1400～1499 (TCP) へのインバウンドアクセスを許可する必要があります。
+ サブネットのネットワークアクセスコントロールリストでは、一時ネットワークポート 1024～65535 (TCP) から、ユーザーが接続する IP アドレス範囲へのアウトバウンドトラフィックを許可する必要があります。
+ API アクションを実行するためのアクセス許可AWS アカウントを提供する IAM `ec2:DescribeVpcEndpoints` アクセス許可ポリシーが にある必要があります。デフォルトでは、このアクセス許可は AmazonAppStreamServiceAccess ロールにアタッチされている IAM ポリシーで定義されます。必要なアクセス許可がある場合、 AWSリージョンで WorkSpaces アプリケーションサービスの使用を開始すると、このサービスロールは WorkSpaces アプリケーションによって自動的に作成され、必要な IAM ポリシーがアタッチされます。詳細については、「[Amazon WorkSpaces アプリケーションの Identity and Access Management](controlling-access.md)」を参照してください。

**インターフェイスエンドポイントを作成するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

1. ナビゲーションペインで、[**エンドポイント**]、[**エンドポイントを作成**] の順に選択します。

1. **[Create Endpoint]** (エンドポイントの作成) を選択します。

1. **サービスカテゴリ**で、**AWSサービス**が選択されていることを確認します。

1. **[Service Name]** (サービス名)には **com.amazonaws.***<AWS リージョン>***.appstream.streaming** を選択します。

1. 以下の情報を指定します。終了したら、[**Create Endpoint**] を選択します。
   + [**VPC**] で、インターフェイスエンドポイントを作成する VPC を選択します。WorkSpaces Applications リソースを使用する VPC とは異なる VPC を選択できます。
   + [**サブネット**] で、エンドポイントネットワークインターフェイスを作成する先のサブネット (アベイラビリティーゾーン) を選択します。少なくとも 2 つのアベイラビリティーゾーンで サブネットを選択することをお勧めします。
   + **IP アドレスタイプ**で、IPV6 または IPV4 を選択します。
   + [**Enable Private DNS Name**] チェックボックスが選択されていることを確認します。
**注記**  
ユーザーがネットワークプロキシを使用してストリーミングインスタンスにアクセスする場合は、プライベートエンドポイントに関連付けられているドメインと DNS 名のプロキシキャッシュを無効にします。VPC エンドポイントの DNS 名は、プロキシを介して許可する必要があります。
   + [**Security group**] で、エンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。
**注記**  
セキュリティグループは、ユーザーが接続する IP アドレス範囲からポートへのインバウンドアクセスを提供する必要があります。

インターフェイスエンドポイントの作成中、コンソールのエンドポイントのステータスは、[**Pending**] と表示されます。エンドポイントが作成されると、ステータスは [**Available**] に変わります。

 ストリーミングセッション用に作成したインターフェイスエンドポイントを使用するようにスタックを更新するには、次のステップを実行します。

**新しいインターフェイスエンドポイントを使用するようスタックを更新するには**

1. [https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) で WorkSpaces アプリケーションコンソールを開きます。

   使用するインターフェイスエンドポイントと同じAWSリージョンでコンソールを開いてください。

1. ナビゲーションペインで [**Stacks**] を選択し、希望するスタックを選択します。

1. [**VPC Endpoints (VPC エンドポイント)**] タブを選択し、[**Edit (編集)**] を選択します。

1. [**Edit VPC Endpoint (VPC エンドポイントの編集)**] ダイアログボックスの [**Streaming Endpoint (ストリーミングエンドポイント)**] で、ストリーミングトラフィックを介するエンドポイントを選択します。

1. [**更新**] を選択します。

新しいストリーミングセッションのトラフィックは、このエンドポイントを介してルーティングされます。ただし、現在のストリーミングセッションのトラフィックは、引き続き以前に指定したエンドポイントを介してルーティングされます。

**注記**  
インターフェイスエンドポイントが指定されている場合、ユーザーはインターネットエンドポイントを使用してストリーミングできません。

# インターフェイス VPC エンドポイントを介して WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスする
<a name="access-api-cli-through-interface-vpc-endpoint"></a>

Amazon Virtual Private Cloud を使用してAWSリソースをホストする場合は、インターネット経由で接続する代わりに、仮想プライベートクラウド (VPC) の[インターフェイス VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) (インターフェイスエンドポイント) を介して WorkSpaces Applications API オペレーションまたはコマンドラインインターフェイス (CLI) コマンドに直接接続できます。インターフェイスエンドポイントは、プライベート IP アドレスを使用して指定した VPC 内でトラフィックをストリーミングできるテクノロジーである AWSPrivateLink を利用しています。インターフェイスエンドポイントを使用する場合、VPC と WorkSpaces アプリケーション間の通信はAWS、ネットワーク内で完全かつ安全に行われます。

**注記**  
このトピックでは、インターフェイスエンドポイントを介して WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスする方法について説明します。WorkSpaces アプリケーションインターフェイスエンドポイントを作成してストリーミングする方法については、「」を参照してください[チュートリアル: インターフェイス VPC エンドポイントからの作成とストリーミング](creating-streaming-from-interface-vpc-endpoints.md)。

**前提条件**

インターフェイスエンドポイントを使用するには、次の前提条件を満たす必要があります。
+ インターフェイスエンドポイントに関連付けられているセキュリティグループは、ユーザーが接続する IP アドレス範囲からポート 443(TCP) のインバウンドアクセスを許可する必要があります。
+ サブネットのネットワークアクセスコントロールリストでは、一時ネットワークポート 1024～65535 (TCP) から、ユーザーが接続する IP アドレス範囲へのアウトバウンドトラフィックを許可する必要があります。

**Topics**
+ [

# WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスするためのインターフェイスエンドポイントを作成する
](access-api-cli-through-interface-vpc-endpoint-create-interface-endpoint.md)
+ [

# インターフェイスエンドポイントを使用して WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスする
](how-to-access-api-cli-through-interface-vpc-endpoint.md)

# WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスするためのインターフェイスエンドポイントを作成する
<a name="access-api-cli-through-interface-vpc-endpoint-create-interface-endpoint"></a>

インターフェイスエンドポイントを作成するには、次のステップを実行します。

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

1. ナビゲーションペインで、[**エンドポイント**]、[**エンドポイントを作成**] の順に選択します。

1. **[Create Endpoint]** (エンドポイントの作成) を選択します。

1. **サービスカテゴリ**で、**AWSサービス**が選択されていることを確認します。

1. **[Service Name]** (サービス名)には **com.amazonaws.***<AWS リージョン>***.appstream.api** を選択します。

1. 以下の情報を指定します。終了したら、[**Create Endpoint**] を選択します。
   + [**VPC**] で、インターフェイスエンドポイントを作成する VPC を選択します。
   + **[サブネット]** は、エンドポイントネットワークインターフェイスを作成する先の、サブネット (アベイラビリティーゾーン) を選択します。少なくとも 2 つのアベイラビリティーゾーンで サブネットを選択することをお勧めします。
   + オプションで、[**Enable Private DNS Name**] チェックボックスを選択できます。
**注記**  
このオプションを選択する場合は、必要に応じて、プライベート DNS をサポートするように VPC および DNS を必ず設定してください。詳細については、*Amazon VPC ユーザーガイド*の [Private DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-private-dns) を参照してください。
   + **[Security group]** (セキュリティグループ) で、エンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。
**注記**  
セキュリティグループは、ユーザーが接続する IP アドレス範囲からポートへのインバウンドアクセスを提供する必要があります。

インターフェイスエンドポイントの作成中、コンソールのエンドポイントのステータスは、[**Pending**] と表示されます。エンドポイントが作成されると、ステータスは [**Available**] に変わります。

# インターフェイスエンドポイントを使用して WorkSpaces アプリケーション API オペレーションと CLI コマンドにアクセスする
<a name="how-to-access-api-cli-through-interface-vpc-endpoint"></a>

作成したインターフェイス VPC エンドポイントのステータスが **Available** に変更されると、エンドポイントを使用して WorkSpaces Applications API オペレーションと CLI コマンドにアクセスできます。これを実行するには、これらのオペレーションおよびコマンドを使用するときに、インターフェイスエンドポイントの DNS 名がある `endpoint-url` パラメータを指定します。DNS 名はパブリックに解決可能ですが、VPC 内のトラフィックのみを正常にルーティングします。

次の例は、**describe-fleets** CLI コマンドを使用するときにインターフェイスエンドポイントの DNS 名を指定する方法を示しています。

```
aws appstream describe-fleets --endpoint-url <vpc-endpoint-id>.api.appstream.<aws-region>.vpce.amazonaws.com
```

次の例は、WorkSpaces Applications Boto3 Python クライアントをインスタンス化するときにインターフェイスエンドポイントの DNS 名を指定する方法を示しています。

```
appstream2client = boto3.client('appstream',region_name='<aws-region>',endpoint_url='<vpc-endpoint-id>.api.appstream.<aws-region>.vpce.amazonaws.com'
```

`appstream2client` オブジェクトを使用する後続のコマンドでは、指定したインターフェイスエンドポイントが自動的に使用されます。

インターフェイスエンドポイントのプライベート DNS ホスト名を有効にした場合は、エンドポイント URL を指定する必要はありません。API と CLI がデフォルトで使用する WorkSpaces アプリケーション API DNS ホスト名は、VPC 内で解決されます。プライベート DNS ホスト名の詳細については、*Amazon VPC ユーザーガイド*の [Private DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-private-dns) を参照してください。

# FIPS エンドポイントを使用した転送中のデータの保護
<a name="protecting-data-in-transit-FIPS-endpoints"></a>

AppStream 2.0 サービスと通信する際には (管理者として AppStream 2.0 コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用する場合でも、ユーザーとして Image Builder またはフリートインスタンスからストリーミングする場合でも)、転送中のすべてのデータに対してデフォルトで TLS 1.2 による暗号化が行われます。

コマンドラインインターフェイスまたは API を使用して AWS にアクセスするときに FIPS 140-2 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。AppStream 2.0 は、AppStream 2.0 が利用可能な米国内のすべての AWS リージョンで、FIPS エンドポイントを提供しています。FIPS エンドポイントを使用する場合、転送中のすべてのデータは、連邦情報処理標準 (FIPS)140-2 に準拠する暗号化標準を使用して暗号化されます。AppStream 2.0 エンドポイントのリストなど、FIPS エンドポイントの詳細については、[Federal Information Processing Standard (FIPS) 140-2](https://aws.amazon.com/compliance/fips) を参照してください。

**Topics**
+ [

# 管理用の FIPS エンドポイント
](FIPS-for-administrative-use.md)
+ [

# ユーザーストリーミングセッションの FIPS エンドポイント
](FIPS-for-user-streaming-sessions.md)
+ [

# 例外
](FIPS-exceptions.md)

# 管理用の FIPS エンドポイント
<a name="FIPS-for-administrative-use"></a>

AppStream 2.0 に対して AWS CLI コマンドを実行するときに FIPS エンドポイントを指定するには、`endpoint-url` パラメータを使用します。以下の例では、米国西部 (オレゴン) リージョンの AppStream 2.0 FIPS エンドポイントを使用して、そのリージョン内のすべてのスタックのリストを取得します。

```
aws appstream describe-stacks --endpoint-url https://appstream2-fips.us-west-2.amazonaws.com
```

AppStream 2.0 API オペレーションの FIPS エンドポイントを指定するには、AWS SDK が提供する手順によりカスタムエンドポイントを指定します。

# ユーザーストリーミングセッションの FIPS エンドポイント
<a name="FIPS-for-user-streaming-sessions"></a>

SAML 2.0 またはストリーミング URL を使用してユーザーを認証する場合は、ユーザーのストリーミングセッション用に FIPS 準拠の接続を設定できます。

SAML 2.0 を使用して認証するユーザーに FIPS 準拠の接続を使用するには、フェデレーションのリレーステートを設定するときに AppStream 2.0 FIPS エンドポイントを指定します。SAML 2.0 を使用した ID フェデレーション用のリレーステート URL の生成の詳細については、[SAML のセットアップ](external-identity-providers-setting-up-saml.md) を参照してください。

ストリーミング URL を介して認証するユーザー用に FIPS 準拠の接続を構成するには、AppStream 2.0 FIPS エンドポイントを指定しながら、(AWS CLI または AWS SDK から) [CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) または [CreateImageBuilderStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateImageBuilderStreamingURL.html) オペレーションを呼び出します。生成された URL を使用してストリーミングインスタンスに接続するユーザーは、FIPS 準拠の接続を使用します。以下の例では、米国東部 (バージニア) リージョンの AppStream 2.0 FIPS エンドポイントを使用して、FIPS 準拠のストリーミング URL を生成します。

```
aws appstream create-streaming-url --stack-name stack-name --fleet-name fleet-name --user-id user-id --endpoint-url https://appstream2-fips.us-east-1.amazonaws.com
```

# 例外
<a name="FIPS-exceptions"></a>

FIPS 準拠の接続は以下のシナリオではサポートされません。
+ AppStream 2.0 コンソール経由の AppStream 2.0 の管理
+ AppStream 2.0 ユーザープール機能を使用して認証するユーザーのストリーミングセッション
+ インターフェイス VPC エンドポイントを使用したストリーミング
+ AppStream 2.0 コンソールからの FIPS 準拠のストリーミング URL の生成
+ ストレージプロバイダーが FIPS エンドポイントを提供しない、Google Drive または OneDrive ストレージアカウントへの接続

# Amazon WorkSpaces アプリケーションのセキュリティグループ
<a name="managing-network-security-groups"></a>

VPC セキュリティグループに関連付けることで、フリート内のストリーミングインスタンスまたは Amazon WorkSpaces アプリケーションの Image Builder から VPC への追加のアクセスコントロールを提供できます。VPC に属するセキュリティグループを使用すると、WorkSpaces アプリケーションストリーミングインスタンスと、ライセンスサーバー、ファイルサーバー、データベースサーバーなどの VPC リソース間のネットワークトラフィックを制御できます。詳細については、*Amazon VPC ユーザーガイド*の「[VPC のセキュリティグループ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)」を参照してください。

セキュリティグループがフリートまたは Image Builder に関連付けられている場合、VPC セキュリティグループに対して定義するルールが適用されます。セキュリティグループのルールにより、ストリーミングインスタンスから許可されるネットワークトラフィックが決まります。詳細については、*Amazon VPC ユーザーガイド*の [Security Group Rules](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules) を参照してください。

新しい Image Builder の起動中、または新しいフリートの作成中に、最大 5 つのセキュリティグループを関連付けることができます。セキュリティグループを既存のフリートに関連付けるか、フリートのセキュリティグループを変更することもできます (フリートのセキュリティグループを変更するには、フリートを停止する必要があります)。詳細については、「Amazon VPC ユーザーガイド」の「[セキュリティグループの操作](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#WorkingWithSecurityGroups)」を参照してください。

セキュリティグループを選択しないと、Image Builder またはフリートは VPC のデフォルトのセキュリティグループに関連付けられます。詳細については、*Amazon VPC ユーザーガイド*の「[VPC のデフォルトセキュリティグループ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup)」を参照してください。

WorkSpaces アプリケーションでセキュリティグループを使用する場合は、以下の追加の考慮事項を使用してください。
+ インターネットトラフィック、ホームフォルダのデータ、VPC リソースとのアプリケーションの通信など、すべてのエンドユーザーデータは、ストリーミングインスタンスに関連付けられたセキュリティグループから影響を受けます。
+ ストリーミングピクセルデータはセキュリティグループの影響を受けません。
+ フリートまたは Image Builder に対してデフォルトのインターネットアクセスを有効にしている場合、関連付けられたセキュリティグループのルールで、インターネットアクセスを許可する必要があります。

Amazon VPC コンソールを使用して、セキュリティグループのルールを作成または編集したり、新しいセキュリティグループを作成したりできます。
+ **セキュリティグループを Image Builder に関連付けるには**、[Image Builder を起動し、ストリーミングアプリケーションをインストールして設定する](tutorial-image-builder-create.md) の手順に従います。
+ **フリートにセキュリティグループを関連付けるには**
  + *While creating the fleet (フリートの作成中)* — [Amazon WorkSpaces アプリケーションでフリートを作成する](set-up-stacks-fleets-create.md) の手順に従います。
  + *既存のフリートの場合* — AWS マネジメントコンソールを使用してフリート設定を編集します。

 AWS CLI および SDKs を使用して、セキュリティグループをフリートに関連付けることもできます。
+ **AWS CLI** — [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-fleet.html) コマンドと [update-fleet](https://docs.aws.amazon.com/cli/latest/reference/appstream/update-fleet.html) コマンドを使用します。
+ **AWS SDKs** [CreateFleet](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateFleet.html) および [UpdateFleet](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_UpdateFleet.html) API オペレーションを使用します。

詳細については、[AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)および「[Tools for Amazon Web Services](https://aws.amazon.com/tools/)」を参照してください。

# Amazon AppStream 2.0 での更新管理
<a name="update-management"></a>

AppStream 2.0 には、Image Builder をより新しい AppStream 2.0 エージェントソフトウェアで自動的に更新する方法が用意されています。常に最新バージョンの AppStream 2.0 エージェントを使用するようにイメージを設定すると、ストリーミングインスタンスは自動的に更新されて、AWS で利用可能な最新の機能、機能強化、およびセキュリティ更新プログラムが反映されます。AppStream 2.0 エージェントのバージョンを管理する方法については、[WorkSpaces アプリケーションエージェントバージョンを管理する](base-images-agent.md) を参照してください。

Windows オペレーティングシステムの更新プログラム、お客様のアプリケーション、それらの依存関係のインストールとメンテナンスは、お客様の責任で行います。詳細については、「[Amazon WorkSpaces アプリケーションイメージUp-to-Date状態に保つ](keep-image-updated.md)」を参照してください。

AppStream 2.0 イメージは、AppStream 2.0 マネージドイメージ更新を使用して最新の状態に保つことができます。この更新機能では、最新の Windows オペレーティングシステムの更新とドライバーの更新、および最新の AppStream 2.0 エージェントソフトウェアが提供されます。詳細については、「[Managed WorkSpaces アプリケーションイメージの更新を使用してイメージを更新する](keep-image-updated-managed-image-updates.md)」を参照してください。

ストリーミングインスタンス上のアプリケーションの更新を管理するには、提供される自動更新サービスを使用できます。また、アプリケーションベンダーが提供する更新プログラムをインストールするための推奨事項に従うこともできます。

# Amazon WorkSpaces アプリケーションサービス間の混乱した代理の防止
<a name="confused-deputy"></a>

混乱した代理問題とは、アクションを実行する許可を持たないエンティティが、より高い特権を持つエンティティにそのアクションの実行を強制するというセキュリティ問題です。 AWSでは、サービス間でのなりすましにより、混乱した代理問題に対してアカウントリソースが脆弱になることがあります。サービス間でのなりすましは、1 つのサービス (*呼び出し元サービス*) が、別のサービス (*呼び出されたサービス*) を呼び出すときに発生します。呼び出し元サービスが呼び出されたサービスを操作し、そのアクセス許可を使用して、呼び出し元サービスが自身で実行するアクセス許可を持っていない方法で、顧客のリソースに対して処理を実行する可能性があります。これを防ぐために、 は、アカウント内のリソースにアクセスできるサービスプリンシパルを持つすべてのサービスのデータを保護するのに役立つツール AWS を提供します。

リソースポリシーで `aws:SourceArn` および `aws:SourceAccount` のグローバル条件コンテキストキーを使用して、それらのリソースにアクセスするときにアクセス許可を制限することをお勧めします。以下のガイドラインでは、これらのキーを使用してリソースを保護する場合の推奨事項と要件を詳しく説明しています。
+ クロスサービスのアクセスにリソースを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。
+ 指定されたアカウント内の任意のリソースを、クロスサービスによる使用に関連付ける場合は、`aws:SourceAccount` を使用します。
+ `aws:SourceArn` キーにアカウント ID が含まれていない場合、アクセス許可を制限するためには、これら両方のグローバル条件コンテキストキー (`aws:SourceArn` および `aws:SourceAccount`) を使用する必要があります。
+ 両方のグローバル条件コンテキストキーを使用しており、`aws:SourceArn` の値にアカウント ID が含まれる場合、それらが同じポリシーステートメントで使用されるときは、`aws:SourceAccount` キーは同じアカウント ID を使用する必要があります。

混乱した代理問題を回避するための最も効果的な方法は、許可するリソースに正確な Amazon リソースネーム (ARN) を使用することです。リソースの完全な ARN が不明な場合は、グローバルコンテキスト条件キー `aws:SourceArn` で、ARN の不明な部分を示すためにワイルドカード (\$1 など) を使用します。複数のリソースを指定する場合は、ARN でワイルドカードを使用することもできます。例えば、ARN を `arn:aws:servicename::region-name::your AWS アカウント ID:*` のようにフォーマットできます。

**Topics**
+ [

# 例: WorkSpaces アプリケーションサービスロールのサービス間の混乱した代理の防止
](example-confused-deputy.md)
+ [

# 例: WorkSpaces アプリケーションフリートマシンロールのサービス間の混乱した代理の防止
](example-fleet-machine.md)
+ [

# 例: WorkSpaces Applications Elastic フリートセッションスクリプト Amazon S3 バケットポリシーのサービス間の混乱した代理の防止
](example-elastic-fleets.md)
+ [

# 例: WorkSpaces アプリケーション Amazon S3 バケットポリシーのサービス間の混乱した代理の防止
](example-s3-bucket.md)

# 例: WorkSpaces アプリケーションサービスロールのサービス間の混乱した代理の防止
<a name="example-confused-deputy"></a>

WorkSpaces Applications は、さまざまなリソース ARNs を使用してサービスロールを引き受けるため、条件ステートメントが複雑になります。WorkSpaces Applications リソースの予期しない障害を防ぐために、ワイルドカードリソースタイプを使用することをお勧めします。

**Example `aws:SourceAccount` 条件付き:**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS アカウント ID"
                }
            }
        }
    ]
}
```

**Example `aws:SourceArn` 条件付き:**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {                   
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:*"
                }
            }
        }
    ]
}
```

# 例: WorkSpaces アプリケーションフリートマシンロールのサービス間の混乱した代理の防止
<a name="example-fleet-machine"></a>

**Example `aws:SourceAccount` 条件付き:**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS アカウント ID"
                }
            }
        }
    ]
}
```

**Example `aws:SourceArn` 条件付き:**  
複数のフリートに 1 つの IAM ロールを使用する場合は、`aws:SourceArn`グローバルコンテキスト条件キーとワイルドカード (\$1) を使用して、複数の WorkSpaces アプリケーションフリートリソースを照合することをお勧めします。  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:fleet/your-fleet-name"
                }
            }
        }
    ]
}
```

# 例: WorkSpaces Applications Elastic フリートセッションスクリプト Amazon S3 バケットポリシーのサービス間の混乱した代理の防止
<a name="example-elastic-fleets"></a>

**Example `aws:SourceAccount` 条件付き:**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::your-bucket-name/your-session-script-path",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS アカウント ID"
                } 
            }
        }
    ]
}
```

**Example `aws:SourceArn` 条件付き:**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/AppStream2/*",
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:fleet/yourFleetName"
                }
            }
        }
    ]
}
```

# 例: WorkSpaces アプリケーション Amazon S3 バケットポリシーのサービス間の混乱した代理の防止
<a name="example-s3-bucket"></a>

Amazon S3 バケットにデータを保存すると、バケットで混乱した代理問題が発生する可能性があります。これにより、Elastic フリート、App Block、セットアップスクリプト、アプリケーションアイコン、セッションスクリプトなどのデータが悪意のある攻撃者に対して脆弱になる可能性があります。

混乱した代理問題を防ぐため、`ELASTIC-FLEET-EXAMPLE-BUCKET` の Amazon S3 バケットポリシーで、`aws:SourceAccount` 条件または `aws:SourceArn` 条件を指定できます。

以下のリソースポリシーは、以下のいずれかの問題に関する混乱した代理問題を防止する方法を説明しています。
+  AWS アカウント ID `aws:SourceAccount`を持つ 
+ グローバル条件コンテキストキー `aws:SourceArn`

WorkSpaces アプリケーションは現在、アプリケーションアイコンの混乱した代理防止をサポートしていません。このサービスは VHD ファイルとセットアップスクリプトのみをサポートします。アプリケーションアイコンに条件を追加しようとしても、アイコンはエンドユーザーに表示されません。

次の例では、バケットポリシーは、所有者のアカウントの WorkSpaces Applications Elastic フリートリソースのみが にアクセスすることを許可します`ELASTIC_FLEET_EXAMPLE_BUCKET`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*",
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS アカウント ID"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*"
        }
    ]
}
```

------

また、`aws:SourceArn` 条件を使用して、特定リソースへのリソースアクセスを制限できます。

**注記**  
リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー `aws:SourceArn` で、ARN の不明な部分を示すためにワイルドカード (\$1) を使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*",
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:app-block/*"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*"
        }
    ]
}
```

------

`aws:SourceArn` および `aws:SourceAccount` 条件を使用して、特定のリソースおよびアカウントへのリソースアクセスを制限できます。

**注記**  
リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバル条件コンテキストキー `aws:SourceArn` で、ARN の不明な部分を示すためにワイルドカード (\$1) を使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*",
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*"
            ],
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:app-block/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "your AWS account ID"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*"
        }
    ]
}
```

------

# Amazon WorkSpaces アプリケーションのセキュリティのベストプラクティス
<a name="security-best-practices"></a>

 クラウドセキュリティは Amazon Web Services (AWS) の最優先事項です。セキュリティとコンプライアンスは、 AWS とお客様の間の責任共有です。詳細については、「[https://aws.amazon.com/compliance/shared-responsibility-model/](https://aws.amazon.com/compliance/shared-responsibility-model/)」を参照してください。 AWS および WorkSpaces Applications のお客様は、スタック、フリート、イメージ、ネットワークなどのさまざまなレイヤーにセキュリティ対策を実装することが重要です。

 一時的な性質上、WorkSpaces アプリケーションは、アプリケーションおよびデスクトップ配信の安全なソリューションとしてよく推奨されます。Windows デプロイで一般的なウイルス対策ソリューションが、ユーザーセッションの終了時に事前定義されて削除される環境のユースケースに適しているかどうかについて検討してください。ウイルス対策は仮想化されたインスタンスにオーバーヘッドを追加するため、不要なアクティビティを軽減することがベストプラクティスとなっています。たとえば、起動時にシステムボリューム (エフェメラル) をスキャンしても、WorkSpaces アプリケーションの全体的なセキュリティには追加されません。

 セキュリティ WorkSpaces アプリケーションに関する 2 つの主要な質問は、主に次の内容です。
+  セッション終了後もユーザーの状態を維持することが必須か？ 
+  ユーザーはセッション内でどのくらいのアクセス権限を持つべきか？ 

**Topics**
+ [

# 永続データの保護
](securing-persistent-data.md)
+ [

# エンドポイントセキュリティとウイルス対策
](endpoint-security-antivirus.md)
+ [

# ネットワーク除外
](network-exclusions.md)
+ [

# WorkSpaces アプリケーションセッションの保護
](securing-session.md)
+ [

# ファイアウォールとルーティング
](firewalls-routing.md)
+ [

# データ損失防止
](data-loss-prevention.md)
+ [

# 出力トラフィックの制御
](controlling-egress-traffic.md)
+ [

# AWS サービスの使用
](using-services.md)

# 永続データの保護
<a name="securing-persistent-data"></a>

 WorkSpaces アプリケーションのデプロイでは、ユーザーの状態を何らかの形で保持する必要がある場合があります。個々のユーザーのデータを永続化する場合や、共有フォルダを使用してコラボレーション用にデータを保持する場合などです。AppStream 2.0 インスタンスストレージは一時的であり、暗号化オプションはありません。

 WorkSpaces アプリケーションは、Amazon S3 のホームフォルダとアプリケーション設定を通じてユーザー状態の永続性を提供します。一部のユースケースでは、ユーザーの状態の永続化をより細かく制御する必要があります。このようなユースケースについては、 AWS は、サーバーメッセージブロック (SMB) ファイル共有の使用を推奨しています。

## ユーザーの状態とデータ
<a name="user-state-and-data"></a>

ほとんどの Windows アプリケーションは、ユーザーが作成したアプリケーションデータとの共存時に最適かつ最も安全に動作するため、このデータを WorkSpaces アプリケーションフリート AWS リージョン と同じ に保持することがベストプラクティスです。このデータを暗号化することがベストプラクティスです。ユーザーホームフォルダのデフォルトの動作は、 AWS キー管理サービス () から Amazon S3-managed暗号化キーを使用して保管中のファイルとフォルダを暗号化することですAWS KMS。 AWS コンソールまたは Amazon S3 バケットにアクセスできる AWS 管理ユーザーは、これらのファイルに直接アクセスできることに注意してください。

ユーザーファイルやフォルダを保存するために Windows ファイル共有のサーバーメッセージブロック (SMB) ターゲットを必要とする設計では、この処理は自動で行われるか、または設定が必要です。

 *表 5 — ユーザーデータを保護するためのオプション* 


|   **SMB ターゲット**   |  **保管時の暗号化**  |  **転送時の暗号化**  |   **ウイルス対策 (AV)**   | 
| --- | --- | --- | --- | 
|  FSx for Windows File Server  |  [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-at-rest.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-at-rest.html)  |  [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-in-transit.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-in-transit.html)  |   リモートインスタンスにインストールされた AV は、マップされたドライブでスキャンを実行します。  | 
|   **ファイルゲートウェイ、 AWS Storage Gateway**   |  デフォルトでは、 が S3 AWS Storage Gateway に保存しているすべてのデータは、Amazon S3-Managed を使用してサーバー側で暗号化されます。オプションで、さまざまなゲートウェイタイプを設定して AWS Key Management Service 、 (KMS) で保存されたデータを暗号化できます。 |  任意のタイプのゲートウェイアプライアンスと AWS ストレージ間で転送されるすべてのデータは、SSL を使用して暗号化されます。 |   リモートインスタンスにインストールされた AV は、マップされたドライブでスキャンを実行します。  | 
|  EC2 ベースの Windows File Server  |  [EBS 暗号化を有効にする](https://docs.aws.amazon.com/kms/latest/developerguide/services-ebs.html)  |  PowerShell、Set- SmbServerConfiguration – EncryptData \$1True |   サーバーにインストールされた AV は、ローカルドライブでスキャンを実行します。  | 

# エンドポイントセキュリティとウイルス対策
<a name="endpoint-security-antivirus"></a>

WorkSpaces アプリケーションインスタンスの短いエフェメラルな性質とデータの永続性の欠如は、永続デスクトップで必要とされるアクティビティによってユーザーエクスペリエンスとパフォーマンスが損なわれないようにするために異なるアプローチが必要であることを意味します。エンドポイントセキュリティエージェントは、組織ポリシーがある場合、または E メール、ファイル進入、外部ウェブブラウジングなどの外部データ進入で使用される場合、WorkSpaces アプリケーションイメージにインストールされます。

## 一意識別子の削除
<a name="removing-unique-iidentifiers"></a>

Endpoint Security エージェントにはグローバル一意識別子 (GUID) がある場合があり、フリートインスタンスの作成プロセス中にリセットする必要があります。ベンダーは、イメージから生成されたインスタンスごとに新しい GUID が確実に生成されるように、製品をイメージにインストールする手順を定めています。

GUID が生成されないようにするには、WorkSpaces Applications Assistant を実行してイメージを生成する前に、最後のアクションとして Endpoint Security エージェントをインストールします。

## パフォーマンスの最適化
<a name="performance-optimization"></a>

エンドポイントセキュリティベンダーは、WorkSpaces アプリケーションのパフォーマンスを最適化するスイッチと設定を提供します。設定はベンダーによって異なり、ベンダーのドキュメント (通常は VDI に関するセクション) に記載されています。一般的な設定には以下が含まれますが、これらに限定されません。
+ 起動時のスキャンをオフにして、インスタンスの作成、起動、ログインにかかる時間を最小限に抑える
+ 不要なスキャンを防ぐため、定期スキャンをオフにする
+ ファイルが列挙されないように署名キャッシュをオフにする
+ VDI に最適化された IO 設定を有効にする
+ パフォーマンスを確保するためにアプリケーションが必要とする除外

Endpoint Security ベンダーは、パフォーマンスを最適化する仮想デスクトップ環境での使用方法を提供しています。
+ Trend Micro Office Scan [仮想デスクトップインフラストラクチャのサポート - Apex One/OfficeScan (trendmicro.com)](https://success.trendmicro.com/solution/1055260-best-practice-for-setting-up-virtual-desktop-infrastructure-vdi-in-officescan)
+ CrowdStrike と [CrowdStrike Falcon をデータセンターに設置する方法](https://www.crowdstrike.com/blog/tech-center/install-falcon-datacenter/)
+ Sophos と [Sophos Central エンドポイント: ID の重複を避けるためにゴールドイメージにインストールする方法、および [Sophos Central:](https://support.sophos.com/support/s/article/KB-000039009?language=en_US) 仮想デスクトップ環境に Windows エンドポイントをインストールする際のベストプラクティス](https://support.sophos.com/support/s/article/KB-000035040?language=en_US)
+ McAfee と [McAfee Agent の仮想デスクトップインフラストラクチャシステムへのプロビジョニングとデプロイ](https://kc.mcafee.com/corporate/index?page=content&id=KB87654)
+ Microsoft Endpoint Security と[非永続 VDI マシン用の Microsoft Defender Antivirus の設定 -](https://techcommunity.microsoft.com/t5/microsoft-defender-for-endpoint/configuring-microsoft-defender-antivirus-for-non-persistent-vdi/ba-p/1489633) Microsoft Tech Community

## スキャンの除外
<a name="scanning-exclusions"></a>

 セキュリティソフトウェアが WorkSpaces アプリケーションインスタンスにインストールされている場合、セキュリティソフトウェアは次のプロセスに干渉してはいけません。

 *表 6 — WorkSpaces Applications プロセスセキュリティソフトウェアは次のプロセスに干渉してはいけません。*


|  **サービス**  |  **プロセス**  | 
| --- | --- | 
|  AmazonCloudWatchAgent  |  "C:\$1Program Files\$1Amazon\$1AmazonCloudWatchAgent\$1start-amazon- cloudwatch-agent.exe" | 
|  AmazonSSMAgent  |  "C:\$1Program Files\$1Amazon\$1SSM\$1amazon-ssm-agent.exe" | 
|  NICE DCV  |  "C:\$1Program Files\$1NICE\$1DCV\$1Server\$1bin\$1dcvserver.exe" "C:\$1Program Files\$1NICE\$1DCV\$1Server\$1bin\$1dcvagent.exe" | 
|  WorkSpaces アプリケーション  |   "C:\$1Program Files\$1Amazon\$1AppStream2\$1StorageConnector\$1StorageConnector.exe"  フォルダ "C:\$1Program Files\$1Amazon\$1Photon\$1"  ".\$1Agent\$1PhotonAgent.exe"  ".\$1Agent\$1s5cmd.exe"  ".\$1WebServer\$1PhotonAgentWebServer.exe"  ".\$1CustomShell\$1PhotonWindowsAppSwitcher.exe"  ".\$1CustomShell\$1PhotonWindowsCustomShell.exe"  ".\$1CustomShell\$1PhotonWindowsCustomShellBackground.exe"  | 

## フォルダ
<a name="folders"></a>

 セキュリティソフトウェアが WorkSpaces アプリケーションインスタンスにインストールされている場合、ソフトウェアは次のフォルダに干渉してはいけません。

**Example**  

```
    C:\Program Files\Amazon\* 
    C:\ProgramData\Amazon\* 
    C:\Program Files (x86)\AWS Tools\* 
    C:\Program Files (x86)\AWS SDK for .NET\* 
    C:\Program Files\NICE\* 
    C:\ProgramData\NICE\* 
    C:\AppStream\*
```

## Endpoint Security コンソールの健全性
<a name="endpoint-security-console-hygiene"></a>

WorkSpaces アプリケーションは、ユーザーがアイドルタイムアウトと切断タイムアウトを超えて接続するたびに、新しい一意のインスタンスを作成します。インスタンスには一意の名前が付けられ、エンドポイントセキュリティ管理コンソールに蓄積されます。4 日以上経過した (または WorkSpaces アプリケーションのセッションタイムアウトに応じてそれより小さい) 未使用の古いマシンを削除するように設定すると、コンソールで期限切れのインスタンスの数を最小限に抑えることができます。

# ネットワーク除外
<a name="network-exclusions"></a>

 WorkSpaces アプリケーション管理ネットワーク範囲 (`198.19.0.0/16`) および以下のポートとアドレスは、WorkSpaces アプリケーションインスタンス内のセキュリティ/ファイアウォールまたはウイルス対策ソリューションによってブロックしないでください。

 *表 7 — WorkSpaces アプリケーションのストリーミングインスタンスのセキュリティソフトウェアが と干渉しないようにする* 


|  **[ポート]**  |   **使用方法**   | 
| --- | --- | 
|  8300  |   これはストリーミング接続の確立に使用されます。  | 
|  3128  |  これは、WorkSpaces アプリケーションによるストリーミングインスタンスの管理に使用されます。 | 
|  8000  |   これは、WorkSpaces アプリケーションによるストリーミングインスタンスの管理に使用されます。  | 
|  8443  |   これは、WorkSpaces アプリケーションによるストリーミングインスタンスの管理に使用されます。  | 
|  53  |   DNS   | 

 *表 8 — WorkSpaces Applications マネージドサービスアドレス セキュリティソフトウェアが を妨害してはならない* 


|  **[ポート]**  |  **使用方法**  | 
| --- | --- | 
|  169.254.169.123  |  NTP  | 
|  169.254.169.249  |  NVIDIA GRID ライセンスサービス  | 
|  169.254.169.250  |  KMS  | 
|  169.254.169.251  |  KMS  | 
|  169.254.169.253  |  DNS  | 
|  169.254.169.254  |  メタデータ  | 

# WorkSpaces アプリケーションセッションの保護
<a name="securing-session"></a>

## アプリケーションとオペレーティングシステムの制御の制限
<a name="limiting-application-and-operating-system-controls"></a>

 WorkSpaces Applications を使用すると、管理者はアプリケーションストリーミングモードでウェブページから起動できるアプリケーションを正確に指定できます。ただし、これによって、指定されたアプリケーションのみを実行できることが保証されるわけではありません。

 Windows ユーティリティとアプリケーションは、追加の手段でオペレーティングシステムを介して起動できます。組織に必要なアプリケーションのみを実行できるように、[https://aws.amazon.com/blogs/desktop-and-application-streaming/using-microsoft-applocker-to-manage-application-experience-on-amazon-appstream-2-0/](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-microsoft-applocker-to-manage-application-experience-on-amazon-appstream-2-0/) を使用する AWS ことをお勧めします。デフォルトのルールでは、重要なシステムディレクトリへのパスアクセスがすべてのユーザーに許可されるため、変更する必要があります。

**注記**  
 Windows Server 2016 と 2019 では、AppLocker ルールを適用するために Windows Application Identity サービスを実行する必要があります。Microsoft AppLocker を使用した WorkSpaces アプリケーションからのアプリケーションアクセスの詳細については、[AppStream 管理ガイドを参照してください。](https://docs.aws.amazon.com/appstream2/latest/developerguide/data-protection.html#application-access)

 Active Directory ドメインに参加しているフリートインスタンスの場合は、グループポリシーオブジェクト (GPO) を使用してユーザーとシステム設定を配信し、ユーザーのアプリケーションとリソースへのアクセスを保護します。

# ファイアウォールとルーティング
<a name="firewalls-routing"></a>

 WorkSpaces アプリケーションフリートを作成するときは、サブネットとセキュリティグループを割り当てる必要があります。サブネットには、ネットワークアクセスコントロールリスト (NACL) とルートテーブルが既に割り当てられています。新しい Image Builder の起動中、または新しいフリートの作成中に、[最大 5 つのセキュリティグループ](https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-network-security-groups.html)を関連付けることができます。セキュリティグループには、[既存のセキュリティグループから最大 5 つの割り当て](https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-network-security-groups.html)を関連付けることができます。セキュリティグループごとに、インスタンスとの間で送受信されるネットワークトラフィックのアウトバウンドとインバウンドを制御するルールを追加します。

NACL は1 つまたは複数の サブネットのインバウンドトラフィックとアウトバウンドトラフィックを制御するためのファイアウォールとして機能する任意指定の VPC セキュリティレイヤーです。セキュリティの追加レイヤーを VPC に追加するには、セキュリティグループと同様のルールを指定したネットワーク ACL をセットアップできます。セキュリティグループとネットワーク ACL の違いの詳細については、「[セキュリティグループとネットワーク ACL を比較する](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html#VPC_Security_Comparison)」のページを参照してください。

セキュリティグループと NACL のルールを設計して適用するときは、権限を最小限に抑えるための AWS Well-Architected のベストプラクティスを検討してください。*最小特権*とは、タスクを完了するために必要なアクセス許可のみを付与する原則です。

オンプレミス環境を (AWS Direct Connect 経由で) AWS に接続する高速プライベートネットワークを保有するカスタマーは、AppStream 用の VPC エンドポイントの使用を検討してください。この場合、ストリーミングトラフィックは、パブリックインターネットを経由するのではなく、プライベートネットワーク接続を介してルーティングされます。このトピックの詳細については、このドキュメントのWorkSpaces アプリケーションストリーミングインターフェイス VPC エンドポイント」セクションを参照してください。

# データ損失防止
<a name="data-loss-prevention"></a>

ここでは、2 種類のデータ損失防止について確認しますす。

## クライアントから AppStream 2.0 インスタンスへのデータ転送の制御
<a name="client-to-AppStream-instance-data-transfer-controls"></a>

 *表 9 — データの入出力の制御に関するガイダンス* 


|  **設定**  |  **オプション**  |  **ガイダンス**  | 
| --- | --- | --- | 
|  クリップボード  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/appstream2/latest/developerguide/data-loss-prevention.html)  |  この設定を無効にしても、セッション内のコピーと貼り付けは無効になりません。セッションにデータをコピーする必要がある場合は、データ漏洩の可能性を最小限に抑えるため、[リモートセッションにのみ貼り付ける] を選択してください。 | 
|  ファイル転送  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/appstream2/latest/developerguide/data-loss-prevention.html)  |  データ漏えいを防ぐため、この設定は有効にしないでください。 | 
|  ローカルデバイスへの印刷  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/appstream2/latest/developerguide/data-loss-prevention.html)  |  印刷が必要な場合は、組織によって制御およびモニタリングされているネットワークマッピングされたプリンタを使用してください。 | 

 既存の組織データ転送ソリューションがスタック設定よりも優れている点について検討してください。これらの設定は、包括的なセキュアデータ転送ソリューションに代わるものではありません。

# 出力トラフィックの制御
<a name="controlling-egress-traffic"></a>

データ損失が懸念される場合は、ユーザーが WorkSpaces アプリケーションインスタンス内にいるとアクセスできるものを隠すことが重要です。ネットワークの出口 (または出力) パスはどのようになっていますか？ WorkSpaces アプリケーションインスタンス内でエンドユーザーがパブリックインターネットアクセスを利用できるようにすることが一般的な要件であるため、ネットワークパスに WebProxy またはコンテンツフィルタリングソリューションを配置することを検討する必要があります。その他の考慮事項には、ローカルのウイルス対策アプリケーションと AppStream インスタンス内のその他のエンドポイントセキュリティ対策が含まれます (詳細については、「エンドポイントセキュリティとウイルス対策」のセクションを参照してください)。

# AWS サービスの使用
<a name="using-services"></a>

## AWS Identity and Access Management
<a name="aws-identity-and-access-management"></a>

 IAM ロールを使用して AWS サービスにアクセスし、それにアタッチされた IAM ポリシーに固有であることは、WorkSpaces アプリケーションセッションのユーザーのみが追加の認証情報を管理せずにアクセスできるようにするベストプラクティスです。[https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html#best-practices-for-using-iam-role-with-streaming-instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html#best-practices-for-using-iam-role-with-streaming-instances)に従います。

 ユーザーデータをホームフォルダとアプリケーション設定の永続化の両方に保持するために作成された [https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html)を作成します。これにより[https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-restricted-access](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-restricted-access)アクセスできなくなります。

## VPC エンドポイント
<a name="vpc-endpoints-1"></a>

 VPC エンドポイントは、VPC とサポートされている AWS サービス、および を搭載した VPC エンドポイントサービス間のプライベート接続を有効にします AWS PrivateLink。 AWS PrivateLink は、プライベート IP アドレスを使用して サービスにプライベートにアクセスできるテクノロジーです。VPC と他のサービス間のトラフィックは、Amazon ネットワークを離れません。 AWS サービスにのみパブリックインターネットアクセスが必要な場合、VPC エンドポイントは NAT ゲートウェイとインターネットゲートウェイの要件を完全に削除します。

 自動化ルーチンまたはデベロッパーが WorkSpaces アプリケーションの API コールを行う必要がある環境では、[https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html)。たとえば、パブリックインターネットアクセスのないプライベートサブネットに EC2 インスタンスがある場合、WorkSpaces アプリケーション API の VPC エンドポイントを使用して、[https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html)などの AppStream 2.0 API オペレーションを呼び出すことができます。次の図は、WorkSpaces アプリケーション API とストリーミング VPC エンドポイントが Lambda 関数と EC2 インスタンスによって消費されるセットアップの例を示しています。

![\[VPC エンドポイントの参照アーキテクチャ図\]](http://docs.aws.amazon.com/ja_jp/appstream2/latest/developerguide/images/vpc-endpoint.jpeg)


 *VPC エンドポイント* 

 ストリーミング VPC エンドポイントでは、VPC エンドポイントを介してセッションをストリーミングできます。ストリーミングインターフェイスエンドポイントは、VPC 内のストリーミングトラフィックを維持します。ストリーミングトラフィックには、ピクセル、USB、ユーザー入力、オーディオ、クリップボード、ファイルのアップロードとダウンロード、プリンターのトラフィックが含まれます。VPC エンドポイントを使用するには、WorkSpaces Applications スタックで VPC エンドポイント設定を有効にする必要があります。これは、インターネットアクセスが制限されていて、Direct Connect インスタンス経由でアクセスしたほうが有利な場所から、パブリックインターネット経由でユーザーセッションをストリーミングする代替手段となります。VPC エンドポイントを介してユーザーセッションをストリーミングするには、以下が必要です。
+  インターフェイスエンドポイントに関連付けられているセキュリティグループは、ユーザーが接続する IP アドレス範囲からポート `443` (TCP) とポート `1400–1499` (TCP) へのインバウンドアクセスを許可する必要があります。
+  サブネットのネットワークアクセスコントロールリストでは、一時ネットワークポート `1024-65535` (TCP) から、ユーザーが接続する IP アドレス範囲へのアウトバウンドトラフィックを許可する必要があります。
+  インターネット接続は、ユーザーを認証し、WorkSpaces アプリケーションが機能するために必要なウェブアセットを配信するために必要です。

 WorkSpaces アプリケーションを使用した AWS サービスへのトラフィックの制限の詳細については、VPC [https://docs.aws.amazon.com/appstream2/latest/developerguide/creating-streaming-from-interface-vpc-endpoints.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/creating-streaming-from-interface-vpc-endpoints.html)するための管理ガイドを参照してください。

 パブリックインターネットへの完全なアクセスが必要な場合は、Image Builder で Internet Explorer のセキュリティ強化構成 (ESC) を無効にするのがベストプラクティスです。詳細については、WorkSpaces アプリケーション管理ガイド」を参照して、[https://docs.aws.amazon.com/appstream2/latest/developerguide/customize-fleets.html#customize-fleets-disable-ie-esc](https://docs.aws.amazon.com/appstream2/latest/developerguide/customize-fleets.html#customize-fleets-disable-ie-esc)します。

## インスタンスでのインスタンスメタデータサービス (IMDS) の設定
<a name="configuring-imds"></a>

このトピックでは、インスタンスメタデータサービス (IMDS) について説明します。

*インスタンスメタデータ*は、アプリケーションが実行中のインスタンスを設定または管理するために使用できる Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに関連するデータです。インスタンスメタデータサービス (IMDS) は、インスタンス上のコードによって、インスタンスメタデータに安全にアクセスするために使用されるインスタンス上のコンポーネントです。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Instance Metadata and User Data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)」を参照してください。

コードは、手法としてインスタンスメタデータサービスバージョン 1 (IMDSv1) またはインスタンスメタデータサービスバージョン 2 (IMDSv2) のいずれかを使用して、実行中のインスタンスからインスタンスメタデータにアクセスできます。IMDSv2 はセッション指向のリクエストを使用し、IMDS へのアクセス試行に利用される可能性があるいくつかのタイプの脆弱性を軽減します。これら 2 つの方法については、「Amazon EC2 ユーザーガイド」の[インスタンスメタデータサービスの設定に関するページ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)を参照してください。

### IMDS のリソースサポート
<a name="imds-resource-support"></a>

常時オン、オンデマンド、単一セッション、マルチセッションフリート、およびすべての Image Builder は、2024 年 IMDSv1 月 16 日以降にリリースされたエージェントバージョンまたはマネージドイメージ更新で WorkSpaces アプリケーションイメージを実行するときに、IMDSv1 と IMDSv2 の両方をサポートします。

Elastic Fleets と AppBlock Builders インスタンスは、IMDSv1 と IMDSv2 の両方もサポートしています。

### IMDS 属性設定の例
<a name="imds-examples"></a>

IMDS メソッドを選択する 2 つの例を次に示します。

#### Java v2 SDK の例
<a name="java-sdk-example"></a>

以下のリクエスト例では、`disableIMDSV1`属性を使用して IMDSv1 を無効にしています。

```
CreateFleetRequest request = CreateFleetRequest.builder()
 .name("TestFleet")
 .imageArn("arn:aws:appstream:us-east-1::image/TestImage")
 .instanceType("stream.standard.large")
 .fleetType(FleetType.ALWAYS_ON)
 .computeCapacity(ComputeCapacity.builder()
 .desiredInstances(5)
 .build())
 .description("Test fleet description")
 .displayName("Test Fleet Display Name")
 .enableDefaultInternetAccess(true)
 .maxUserDurationInSeconds(3600)
 .disconnectTimeoutInSeconds(900)
 .idleDisconnectTimeoutInSeconds(600)
 .iamRoleArn("arn:aws:iam::123456789012:role/TestRole")
 .streamView(StreamView.APP)
 .platform(PlatformType.WINDOWS)
 .maxConcurrentSessions(10)
 .maxSessionsPerInstance(2)
 .tags(tags)
 .disableIMDSV1(true)
 .build();
```

**disableIMDSV1** を true に設定して IMDSv1 を無効にし、IMDSv2 を適用します。

**disableIMDSV1** を false に設定してIMDSv1 と IMDSv2 の両方を有効にします。

#### CLI の例
<a name="cli-example"></a>

以下のリクエスト例では、`--disable-imdsv1`属性を使用して IMDSv1 を無効にしています。

```
aws appstream create-fleet --name test-fleet --image-arn "arn:aws:appstream:us-east-1::image/test-image" --disable-imdsv1 --instance-type stream.standard.small --compute-capacity DesiredInstances=2 --max-user-duration-in-seconds 57600 --disconnect-timeout-in-seconds 57600 --region us-east-1
```

IMDSv1 を無効にし、IMDSv2 を適用するには、true `--disable-imdsv1`に設定します。

IMDSv1 と IMDSv2 の両方を有効にするには、false `--no-disable-imdsv1`に設定します。