

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

# WorkSpaces の Identity and Access Management
<a name="workspaces-access-control"></a>

デフォルトでは、IAM ユーザーには WorkSpaces のリソースおよびオペレーションのための許可がありません。IAM ユーザーに WorkSpaces のリソース管理を許可するには、それらのユーザーに許可を明示的に付与する IAM ポリシーを作成し、このポリシーを許可を必要とする IAM ユーザーまたはグループと結びつける必要があります。

**注記**  
Amazon WorkSpaces は、WorkSpace への IAM 認証情報のプロビジョニング (インスタンスプロファイルなど) をサポートしていません。

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

IAM の追加リソースは次のとおりです。
+ IAM ポリシーの詳細については、*IAM ユーザーガイド*の[ポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)を参照してください。
+ IAM の詳細については、[Identity and Access Management (IAM)](https://aws.amazon.com/iam) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/](https://docs.aws.amazon.com/IAM/latest/UserGuide/)を参照してください。
+ IAM アクセス許可ポリシーで使用する WorkSpaces 固有のリソース、アクション、および条件コンテキストキーの詳細については、「*IAM ユーザーガイド*」の「[Amazon WorkSpaces のアクション、リソース、および条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonworkspaces.html)」を参照してください。
+ IAM ポリシーの作成に役立つツールについては、[AWS Policy Generator](https://aws.amazon.com/blogs/aws/aws-policy-generator/) を参照してください。また、[IAM Policy Simulator](https://docs.aws.amazon.com/IAM/latest/UsingPolicySimulatorGuide/) を使用して、ポリシー が AWSへの特定のリクエストを許可するか拒否するかをテストすることもできます。

**Topics**
+ [ポリシーの例](#workspaces-example-iam-policies)
+ [IAM ポリシーで WorkSpaces リソースを指定する](#wsp_iam_resource)
+ [workspaces\$1DefaultRole ロールを作成する](#create-default-role)
+ [AmazonWorkSpacesPCAAccess サービスロールを作成する](#create-pca-access-role)
+ [AWS WorkSpaces の マネージドポリシー](managed-policies.md)
+ [ストリーミングインスタンスでの WorkSpaces とスクリプトへのアクセス](using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.md)
+ [Amazon WorkSpaces コンソールのオペレーションのアクセス許可に関するリファレンス](wsp-console-permissions-ref.md)

## ポリシーの例
<a name="workspaces-example-iam-policies"></a>

以下の例では、Amazon WorkSpaces に対して IAM ユーザーが所有するアクセス許可を制御するために使用できるポリシーステートメントを示しています。

### 例 1: WorkSpaces Personal および WorkSpaces Pools タスクを実行するためのアクセス許可を付与する
<a name="perform-workspaces-personal-pools-tasks"></a>

次のポリシーステートメントは、WorkSpaces Personal と WorkSpaces Pools のタスクを実行するアクセス許可を IAM ユーザーに付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ds:*",
                "workspaces:*",
                "application-autoscaling:DeleteScalingPolicy",
                "application-autoscaling:DeleteScheduledAction",
                "application-autoscaling:DeregisterScalableTarget",
                "application-autoscaling:DescribeScalableTargets",
                "application-autoscaling:DescribeScalingActivities",
                "application-autoscaling:DescribeScalingPolicies",
                "application-autoscaling:DescribeScheduledActions",
                "application-autoscaling:PutScalingPolicy",
                "application-autoscaling:PutScheduledAction",
                "application-autoscaling:RegisterScalableTarget",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:PutMetricAlarm",
                "ec2:AssociateRouteTable",
                "ec2:AttachInternetGateway",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateInternetGateway",
                "ec2:CreateNetworkInterface",
                "ec2:CreateRoute",
                "ec2:CreateRouteTable",
                "ec2:CreateSecurityGroup",
                "ec2:CreateSubnet",
                "ec2:CreateTags",
                "ec2:CreateVpc",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetRole",
                "iam:ListRoles",
                "iam:PutRolePolicy",
                "kms:ListAliases",
                "kms:ListKeys",
                "secretsmanager:ListSecrets",
                "tag:GetResources",
                "sso-directory:SearchUsers",
                "sso:CreateApplication",
                "sso:DeleteApplication",
                "sso:DescribeApplication",
                "sso:DescribeInstance",
                "sso:GetApplicationGrant",
                "sso:ListInstances",
                
                "sso:PutApplicationAssignmentConfiguration",
                "sso:PutApplicationAuthenticationMethod",
                "sso:PutApplicationGrant"
            ],
            "Resource": "*"
        },
        {
            "Sid": "iamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "workspaces.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### 例 2: WorkSpaces Personal タスクを実行するためのアクセス許可を付与する
<a name="perform-workspaces-personal-tasks"></a>

次のポリシーステートメントは、すべての WorkSpaces Personal タスクを実行するアクセス許可を IAM ユーザーに付与します。

Amazon WorkSpaces は API `Action`およびコマンドラインツールを使用する際に および `Resource`要素を完全にサポートしていますが、 から Amazon WorkSpaces を使用するには AWS マネジメントコンソール、IAM ユーザーに以下のアクションとリソースに対するアクセス許可が必要です。
+ アクション: `"ds:*"`
+ リソース: `"Resource": "*"`

次のポリシー例では、IAM ユーザーが AWS マネジメントコンソールから Amazon WorkSpaces を使用することを許可する方法を示しています。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "workspaces:*",
        "ds:*",
        "iam:GetRole",
        "iam:CreateRole",
        "iam:PutRolePolicy",
        "iam:CreatePolicy",
        "iam:AttachRolePolicy",
        "iam:ListRoles",
        "kms:ListAliases",
        "kms:ListKeys",
        "ec2:CreateVpc",
        "ec2:CreateSubnet",
        "ec2:CreateNetworkInterface",
        "ec2:CreateInternetGateway",
        "ec2:CreateRouteTable",
        "ec2:CreateRoute",
        "ec2:CreateTags",
        "ec2:CreateSecurityGroup",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeRouteTables",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeAvailabilityZones",
        "ec2:AttachInternetGateway",
        "ec2:AssociateRouteTable",
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:DeleteSecurityGroup",
        "ec2:DeleteNetworkInterface",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "secretsmanager:ListSecrets",
        "sso-directory:SearchUsers",
        "sso:CreateApplication",
        "sso:DeleteApplication",
        "sso:DescribeApplication",
        "sso:DescribeInstance",
        "sso:GetApplicationGrant",
        "sso:ListInstances",
        
        "sso:PutApplicationAssignmentConfiguration",
        "sso:PutApplicationAuthenticationMethod",
        "sso:PutApplicationGrant"
      ],
      "Resource": "*"
    },
    {
      "Sid": "iamPassRole",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "workspaces.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### 例 3: WorkSpaces Pools タスクを実行するためのアクセス許可を付与する
<a name="perform-workspaces-pools-tasks"></a>

次のポリシーステートメントは、すべての WorkSpaces Pools タスクを実行するアクセス許可を IAM ユーザーに付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "workspaces:*",
                "application-autoscaling:DeleteScalingPolicy",
                "application-autoscaling:DeleteScheduledAction",
                "application-autoscaling:DeregisterScalableTarget",
                "application-autoscaling:DescribeScalableTargets",
                "application-autoscaling:DescribeScalingActivities",
                "application-autoscaling:DescribeScalingPolicies",
                "application-autoscaling:DescribeScheduledActions",
                "application-autoscaling:PutScalingPolicy",
                "application-autoscaling:PutScheduledAction",
                "application-autoscaling:RegisterScalableTarget",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:PutMetricAlarm",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetRole",
                "iam:ListRoles",
                "iam:PutRolePolicy",
                "secretsmanager:ListSecrets",
                "tag:GetResources"
            ],
            "Resource": "*"
        },
        {
            "Sid": "iamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "workspaces.amazonaws.com"
                }
            }
        },
        {
            "Action": "iam:CreateServiceLinkedRole",
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:role/aws-service-role/workspaces.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_WorkSpacesPool",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "workspaces.application-autoscaling.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### 例 4: BYOL WorkSpaces のすべての WorkSpaces タスクを実行する
<a name="perform-byol-workspaces-tasks"></a>

次のポリシーステートメントでは、IAM ユーザーに対し、自分のライセンスを使用する (BYOL) WorkSpaces の作成に必要な Amazon EC2 タスクを含む、すべての WorkSpaces タスクを実行するための許可を付与しています。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ds:*",
                "workspaces:*",
                "ec2:AssociateRouteTable",
                "ec2:AttachInternetGateway",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateInternetGateway",
                "ec2:CreateNetworkInterface",
                "ec2:CreateRoute",
                "ec2:CreateRouteTable",
                "ec2:CreateSecurityGroup",
                "ec2:CreateSubnet",
                "ec2:CreateTags",
                "ec2:CreateVpc",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeImages",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:ModifyImageAttribute",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "iam:CreateRole",
                "iam:GetRole",
                "iam:PutRolePolicy",
                "kms:ListAliases",
                "kms:ListKeys"
            ],
            "Resource": "*"
        },
        {
            "Sid": "iamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "workspaces.amazonaws.com"
                }
            }
        }
    ]
}
```

------

## IAM ポリシーで WorkSpaces リソースを指定する
<a name="wsp_iam_resource"></a>

ポリシーステートメントの `Resource` 要素で WorkSpaces リソースを指定するためには、リソースの Amazon リソースネーム (ARN) を使用します。IAM ポリシーステートメントの `Action` 要素に指定された API アクションを使用する許可を許可または拒否することで、WorkSpaces リソースへのアクセスを制御できます。WorkSpaces は、WorkSpaces、バンドル、IP グループ、およびディレクトリの ARN を定義します。

### WorkSpace ARN
<a name="wsp_arn_syntax"></a>

WorkSpace ARN には、次の例に示す構文があります。

```
arn:aws:workspaces:region:account_id:workspace/workspace_identifier
```

*リージョン*  
WorkSpace があるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*workspace\$1identifier*  
WorkSpace の ID（例: `ws-a1bcd2efg`）。

次に示すのは、特定の WorkSpace を識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:workspace/workspace_identifier"
```

「`*`」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての WorkSpace を指定できます。

### WorkSpace プールの ARN
<a name="wsp_pools_arn_syntax"></a>

WorkSpace プールの ARN には、次の例に示す構文があります。

```
arn:aws:workspaces:region:account_id:workspacespool/workspacespool_identifier
```

*リージョン*  
WorkSpace があるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*workspacespool\$1identifier*  
WorkSpace プールの ID (例: `ws-a1bcd2efg`)。

次に示すのは、特定の WorkSpace を識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:workspacespool/workspacespool_identifier"
```

「`*`」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての WorkSpace を指定できます。

### 証明書 ARN
<a name="wsp_cert_arn_syntax"></a>

WorkSpace 証明書 ARN には、以下の例のような構文があります。

```
arn:aws:workspaces:region:account_id:workspacecertificate/workspacecertificateidentifier
```

*リージョン*  
WorkSpace があるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*workspacecertificate\$1identifier*  
WorkSpace 証明書の ID（例: `ws-a1bcd2efg`）。

次に示すのは、特定の WorkSpace 証明書を識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:workspacecertificate/workspacecertificate_identifier"
```

「`*`」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての WorkSpace を指定できます。

### イメージ ARN
<a name="image_arn_syntax"></a>

WorkSpace イメージ ARN には、次の例に示す構文があります。

```
arn:aws:workspaces:region:account_id:workspaceimage/image_identifier
```

*リージョン*  
WorkSpace イメージがあるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*bundle\$1identifier*  
WorkSpace イメージの ID (例: `wsi-a1bcd2efg`)。

次に示すのは、特定のイメージを識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:workspaceimage/image_identifier"
```

「`*`」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべてのイメージを指定できます。

### バンドル ARN
<a name="bundle_arn_syntax"></a>

バンドル ARN には、次の例に示す構文があります。

```
arn:aws:workspaces:region:account_id:workspacebundle/bundle_identifier
```

*リージョン*  
WorkSpace があるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*bundle\$1identifier*  
WorkSpace バンドルの ID（例: `wsb-a1bcd2efg`）。

次に示すのは、特定のバンドルを識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:workspacebundle/bundle_identifier"
```

「`*`」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべてのバンドルを指定できます。

### IP グループ ARN
<a name="ipgroup_arn_syntax"></a>

IP グループ ARN には、次の例に示す構文があります。

```
arn:aws:workspaces:region:account_id:workspaceipgroup/ipgroup_identifier
```

*リージョン*  
WorkSpace があるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*ipgroup\$1identifier*  
IP グループの ID (例: `wsipg-a1bcd2efg`)。

次に示すのは、特定の IP グループを識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:workspaceipgroup/ipgroup_identifier"
```

「`*`」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての IP グループを指定できます。

### ディレクトリ ARN
<a name="directory_arn_syntax"></a>

ディレクトリ ARN には、次の例に示す構文があります。

```
arn:aws:workspaces:region:account_id:directory/directory_identifier
```

*リージョン*  
WorkSpace があるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*directory\$1identifier*  
ディレクトリの ID (例: `d-12345a67b8`)。

次に示すのは、特定のディレクトリを識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:directory/directory_identifier"
```

「`*`」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべてのディレクトリを指定できます。

### 接続エイリアス ARN
<a name="connection_alias_arn_syntax"></a>

接続エイリアス ARN には、次の例に示す構文があります。

```
arn:aws:workspaces:region:account_id:connectionalias/connectionalias_identifier
```

*リージョン*  
接続エイリアスがあるリージョン (例: `us-east-1`)。

*account\$1id*  
ハイフンなしの AWS アカウントの ID (例: `123456789012`)。

*connectionalias\$1identifier*  
接続エイリアスの ID (例: `wsca-12345a67b8`)。

次に示すのは、特定の接続エイリアスを識別するポリシーステートメントの `Resource` 要素の形式です。

```
"Resource": "arn:aws:workspaces:region:account_id:connectionalias/connectionalias_identifier"
```

`*` ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての接続エイリアスを指定できます。

### リソースレベルのアクセス許可をサポートしない API アクション
<a name="no-resource-level-permissions"></a>

リソース ARN は、次の API アクションで指定することはできません。
+ `AssociateIpGroups`
+ `CreateIpGroup`
+ `CreateTags`
+ `DeleteTags`
+ `DeleteWorkspaceImage`
+ `DescribeAccount`
+ `DescribeAccountModifications`
+ `DescribeIpGroups`
+ `DescribeTags`
+ `DescribeWorkspaceDirectories`
+ `DescribeWorkspaceImages`
+ `DescribeWorkspaces`
+ `DescribeWorkspacesConnectionStatus`
+ `DisassociateIpGroups`
+ `ImportWorkspaceImage`
+ `ListAvailableManagementCidrRanges`
+ `ModifyAccount`

リソースレベルの権限をサポートしていない API アクションの場合は、次の例に示すように、Resource ステートメントを指定する必要があります。

```
"Resource": "*"
```

### 共有リソースに対するアカウントレベルの制限をサポートしない API アクション
<a name="shared-resource-permissions"></a>

次の API アクションでは、リソースがアカウントによって所有されていない場合、リソース ARN でアカウント ID を指定することはできません。
+ `AssociateConnectionAlias`
+ `CopyWorkspaceImage`
+ `DisassociateConnectionAlias`

これらの API アクションでは、アクション対象のリソースをそのアカウントが所有している場合にのみ、リソース ARN でアカウント ID を指定できます。アカウントがリソースを所有していない場合は、次の例に示すように、アカウント ID に `*` を指定する必要があります。

```
"arn:aws:workspaces:region:*:resource_type/resource_identifier"
```

## workspaces\$1DefaultRole ロールを作成する
<a name="create-default-role"></a>

API を使用してディレクトリを登録する前に、`workspaces_DefaultRole` という名前のロールが存在していることを確認します。このロールは、クイックセットアップによって、または を使用して WorkSpace を起動する場合に作成され AWS マネジメントコンソール、ユーザーに代わって特定の AWS リソースにアクセスするアクセス許可を Amazon WorkSpaces に付与します。このロールが存在しない場合は、以下の手順で作成できます。

**workspaces\$1DefaultRole ロールを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. 左側のナビゲーションペインで、[**Roles**] を選択します。

1. [**ロールの作成**] を選択します。

1. **[Select type of trusted entity]** (信頼できるエンティティのタイプを選択) で、**[Another AWS account]** (別の アカウント) を選択します。

1. [**Account ID**] には、ハイフンやスペースを入れずにアカウント ID を入力します。

1. [**Options**] では、多要素認証 (MFA) を指定しないでください。

1. **[Next: Permissions]** (次のステップ: 許可) を選択します。

1. アクセス**許可ポリシーのア**タッチページで、**AmazonWorkSpacesServiceAccess**、**AmazonWorkSpacesSelfServiceAccess**、および **AmazonWorkSpacesPoolServiceAccess** AWS の管理ポリシーを選択します。これらのマネージドポリシーの詳細については、「[AWS WorkSpaces の マネージドポリシー](managed-policies.md)」を参照してください。

1. [**許可の境界を設定**] では、このロールにアタッチされているポリシーと競合する可能性があるため、アクセス許可の境界を使用しないことをお勧めします。このような競合が発生すると、ロールに必要な特定の許可がブロックされる可能性があります。

1. [**次へ: タグ**] を選択します。

1. [**Add tags (optional)**] ページで、必要に応じてタグを追加します。

1. [**Next: Review**] を選択します。

1. [**Review**] ページの [**Role name**] に、**workspaces\$1DefaultRole** を入力します。

1. (オプション) [**ロールの説明**] に、説明を入力します。

1. [**ロールの作成**] を選択します。

1. workspaces\$1DefaultRole ロールの [**Summary**] ページで [**Trust relationships**] タブを選択します。

1. [**信頼関係**] タブで、[**信頼関係の編集**] を選択します。

1. [**Edit Trust Relationship]** ページで、既存のポリシーステートメントを次のステートメントに置き換えます。

   ```
   {
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "workspaces.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. [**Update Trust Policy**] を選択します。

## AmazonWorkSpacesPCAAccess サービスロールを作成する
<a name="create-pca-access-role"></a>

ユーザーが証明書ベースの認証を使用してログインする前に、`AmazonWorkSpacesPCAAccess` という名前のロールが存在することを確認する必要があります。このロールは、 を使用してディレクトリで証明書ベースの認証を有効にしたときに作成され AWS マネジメントコンソール、ユーザーに代わって AWS Private CA リソースにアクセスするアクセス許可を Amazon WorkSpaces に付与します。コンソールを使用して証明書ベースの認証を管理していないために、このロールが存在しない場合は、次の手順で作成できます。

**を使用して AmazonWorkSpacesPCAAccess サービスロールを作成するには AWS CLI**

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

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

****  

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

------

1. 必要に応じて`AmazonWorkSpacesPCAAccess.json`パスを調整し、次の AWS CLI コマンドを実行してサービスロールを作成し、[AmazonWorkspacesPCAAccess](managed-policies.md#workspaces-pca-access) 管理ポリシーをアタッチします。

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

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

# AWS WorkSpaces の マネージドポリシー
<a name="managed-policies"></a>

 AWS 管理ポリシーを使用すると、ユーザー、グループ、ロールにアクセス許可を追加する方が、自分でポリシーを作成するよりも簡単になります。チームに必要な許可のみを提供する [IAM カスタマー管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)を作成するには、時間と専門知識が必要です。 AWS 管理ポリシーを使用して、すぐに開始できます。これらのポリシーは、一般的なユースケースを対象としており、 AWS アカウントで利用できます。 AWS 管理ポリシーの詳細については、*IAM ユーザーガイド*の「 [AWS 管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

AWS サービスは、 AWS 管理ポリシーを維持および更新します。 AWS 管理ポリシーのアクセス許可は変更できません。サービスは、新機能をサポートするために、 AWS 管理ポリシーに追加のアクセス許可を追加することがあります。この種類の更新はポリシーがアタッチされている、すべてのアイデンティティ (ユーザー、グループおよびロール) に影響を与えます。サービスは、新機能が起動されたとき、または新しいオペレーションが利用可能になったときに、 AWS マネージドポリシーを更新する可能性が最も高いです。サービスは AWS マネージドポリシーからアクセス許可を削除しないため、ポリシーの更新によって既存のアクセス許可が損なわれることはありません。

さらに、 は、複数のサービスにまたがるジョブ関数の マネージドポリシー AWS をサポートしています。たとえば、 `ReadOnlyAccess` AWS 管理ポリシーは、すべての AWS サービスとリソースへの読み取り専用アクセスを提供します。サービスが新しい機能を起動する場合、 AWS は新たなオペレーションとリソース用に、読み取り専用の許可を追加します。ジョブ機能のポリシーの一覧および詳細については、「*IAM ユーザーガイド*」の「[AWS のジョブ機能のマネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)」を参照してください。

## AWS マネージドポリシー: AmazonWorkSpacesAdmin
<a name="workspaces-admin"></a>

**注記**  
リストされているアクセス許可は SDK 専用であり、コンソールでは機能しません。コンソールには、[Amazon WorkSpaces コンソールオペレーションのアクセス許可リファレンスに記載されている追加のアクセス許可](wsp-console-permissions-ref.md)が必要です。

このポリシーは、Amazon WorkSpaces の管理アクションへのアクセスを提供します。以下のアクセス許可が提供されます。
+ `workspaces` – WorkSpaces Personal および WorkSpaces Pools リソースに対する管理アクションを実行するためのアクセスを許可します。
+ `kms` – KMS キーの一覧へのアクセスと説明、およびエイリアスの一覧表示を許可します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonWorkSpacesAdmin",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:ListAliases",
                "kms:ListKeys",
                "workspaces:CreateTags",
                "workspaces:CreateWorkspaceImage",
                "workspaces:CreateWorkspaces",
                "workspaces:CreateWorkspacesPool",
                "workspaces:CreateStandbyWorkspaces",
                "workspaces:DeleteTags",
                "workspaces:DeregisterWorkspaceDirectory",
                "workspaces:DescribeTags",
                "workspaces:DescribeWorkspaceBundles",
                "workspaces:DescribeWorkspaceDirectories",
                "workspaces:DescribeWorkspaces",
                "workspaces:DescribeWorkspacesPools",
                "workspaces:DescribeWorkspacesPoolSessions",
                "workspaces:DescribeWorkspacesConnectionStatus",
                "workspaces:ModifyCertificateBasedAuthProperties",
                "workspaces:ModifySamlProperties",
                "workspaces:ModifyStreamingProperties",
                "workspaces:ModifyWorkspaceCreationProperties",
                "workspaces:ModifyWorkspaceProperties",
                "workspaces:RebootWorkspaces",
                "workspaces:RebuildWorkspaces",
                "workspaces:RegisterWorkspaceDirectory",
                "workspaces:RestoreWorkspace",
                "workspaces:StartWorkspaces",
                "workspaces:StartWorkspacesPool",
                "workspaces:StopWorkspaces",
                "workspaces:StopWorkspacesPool",
                "workspaces:TerminateWorkspaces",
                "workspaces:TerminateWorkspacesPool",
                "workspaces:TerminateWorkspacesPoolSession",
                "workspaces:UpdateWorkspacesPool"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS マネージドポリシー: AmazonWorkspacesPCAAccess
<a name="workspaces-pca-access"></a>

この管理ポリシーは、証明書ベースの認証のために、 AWS アカウントの AWS Certificate Manager Private Certificate Authority (Private CA) リソースへのアクセスを提供します。これは AmazonWorkSpacesPCAAccess ロールに含まれており、次のアクセス許可を提供します。
+ `acm-pca` - 証明書ベースの認証を管理するための AWS プライベート CA へのアクセスを許可します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "acm-pca:IssueCertificate",
                "acm-pca:GetCertificate",
                "acm-pca:DescribeCertificateAuthority"
            ],
            "Resource": "arn:*:acm-pca:*:*:*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/euc-private-ca": "*"
                }
            }
        }
    ]
}
```

------

## AWS マネージドポリシー: AmazonWorkSpacesSelfServiceAccess
<a name="workspaces-self-service-access"></a>

このポリシーでは、Amazon WorkSpaces サービスにアクセスして、ユーザーが開始した WorkSpaces セルフサービスアクションを実行できるようにします。これは `workspaces_DefaultRole` ロールに含まれており、次のアクセス許可が付与されます。
+ `workspaces` – ユーザーを対象とした WorkSpace の自己管理機能を利用できるようにします。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "workspaces:RebootWorkspaces",
                "workspaces:RebuildWorkspaces",
                "workspaces:ModifyWorkspaceProperties"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

## AWS マネージドポリシー: AmazonWorkSpacesServiceAccess
<a name="workspaces-service-access"></a>

このポリシーは、WorkSpaces を起動するための Amazon WorkSpaces サービスへのカスタマーアカウントアクセスを提供します。これは `workspaces_DefaultRole` ロールに含まれており、次のアクセス許可が付与されます。
+ `ec2` – ネットワークインターフェイスなど、WorkSpace に関連付けられた Amazon EC2 リソースを管理するためのアクセスを許可します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeNetworkInterfaces"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

## AWS マネージドポリシー: AmazonWorkSpacesPoolServiceAccess
<a name="workspaces-pools-service-access"></a>

このポリシーは workspaces\$1DefaultRole で使用されます。WorkSpaces はこれを使用して、WorkSpaces WorkSpaces Pools の顧客 AWS アカウントの必要なリソースにアクセスします。詳細については、「[workspaces\$1DefaultRole ロールを作成する](workspaces-access-control.md#create-default-role)」を参照してください。以下のアクセス許可が提供されます。
+ `ec2` - WorkSpaces Pools に関連付けられた VPC、サブネット、アベイラビリティーゾーン、セキュリティグループ、ルートテーブルなどの Amazon EC2 リソースを管理するためのアクセスを許可します。
+ `s3` - ログ、アプリケーション設定、ホームフォルダ機能に必要な Amazon S3 バケットでアクションを実行するためのアクセスを許可します。

------
#### [ Commercial AWS リージョン ]

次のポリシー JSON が商用に適用されます AWS リージョン。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ProvisioningWorkSpacesPoolPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeRouteTables",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "WorkSpacesPoolS3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:DeleteObjectVersion",
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy",
                "s3:PutEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::wspool-logs-*",
                "arn:aws:s3:::wspool-app-settings-*",
                "arn:aws:s3:::wspool-home-folder-*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

------

------
#### [ AWS GovCloud (US) Regions ]

次のポリシー JSON は、商用の AWS GovCloud (US) Regionsに適用されます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ProvisioningWorkSpacesPoolPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeRouteTables",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "WorkSpacesPoolS3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:DeleteObjectVersion",
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy",
                "s3:PutEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws-us-gov:s3:::wspool-logs-*",
                "arn:aws-us-gov:s3:::wspool-app-settings-*",
                "arn:aws-us-gov:s3:::wspool-home-folder-*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

------

------

## AWS 管理ポリシーに対する WorkSpaces の更新
<a name="updates-managed-policies"></a>

このサービスがこれらの変更の追跡を開始してからの WorkSpaces の AWS マネージドポリシーの更新に関する詳細を表示します。


| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
| [AWS マネージドポリシー: AmazonWorkSpacesPoolServiceAccess](#workspaces-pools-service-access) - 新しいポリシーを追加しました | Amazon EC2 VPC や関連リソースを表示するためのアクセスを許可し、WorkSpaces Pools の Amazon S3 バケットを表示および管理するためのアクセスを許可する、新しいマネージドポリシーが WorkSpaces に追加されました。 | 2024 年 6 月 24 日 | 
| [AWS マネージドポリシー: AmazonWorkSpacesAdmin](#workspaces-admin) – ポリシーを更新 | Amazon WorkSpacesAdmin マネージドポリシーに WorkSpaces Pools のリソース管理用のアクションがいくつか追加され、管理者がアクセスできるようになりました。 | 2024 年 6 月 24 日 | 
| [AWS マネージドポリシー: AmazonWorkSpacesAdmin](#workspaces-admin) – ポリシーを更新 | WorkSpaces が workspaces:RestoreWorkspace アクションを Amazon WorkspacesAdmin マネージドポリシーに追加し、管理者に WorkSpaces を復元するためのアクセス権を付与します。 | 2023 年 6 月 25 日 | 
| [AWS マネージドポリシー: AmazonWorkspacesPCAAccess](#workspaces-pca-access) - 新しいポリシーを追加しました | WorkSpaces は、証明書ベースの認証を管理する AWS ためのプライベート CA を管理するacm-pcaアクセス許可を付与する新しい管理ポリシーを追加しました。 | 2022 年 11 月 18 日 | 
| WorkSpaces で変更の追跡が開始されました | WorkSpaces が、WorkSpaces マネージドポリシーの変更の追跡を開始しました。 | 2021 年 3 月 1 日 | 

# ストリーミングインスタンスでの WorkSpaces とスクリプトへのアクセス
<a name="using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances"></a>

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

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

**Topics**
+ [WorkSpaces ストリーミングインスタンスで IAM ロールを使用するためのベストプラクティス](#best-practices-for-using-iam-role-with-streaming-instances)
+ [WorkSpaces ストリーミングインスタンスで使用するために既存の IAM ロールを設定する](#configuring-existing-iam-role-to-use-with-streaming-instances)
+ [WorkSpaces ストリーミングインスタンスで使用する IAM ロールを作成する方法](#how-to-create-iam-role-to-use-with-streaming-instances)
+ [WorkSpaces ストリーミングインスタンスで IAM ロールを使用する方法](#how-to-use-iam-role-with-streaming-instances)

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

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

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

  WorkSpaces リソースごとに一意の 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>

このトピックでは、既存の IAM ロールを WorkSpaces で使用できるように設定する方法について説明します。

**前提条件**

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

  
+ IAM ロールを WorkSpaces に適用する場合、2019 年 9 月 3 日以降にリリースされたバージョンの WorkSpaces エージェントを WorkSpaces で実行する必要があります。IAM ロールを WorkSpaces に適用する場合、同じ日付以降にリリースされたバージョンのエージェントを用いるイメージを WorkSpaces で使用する必要があります。

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

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

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 (ポリシードキュメント)**]で、信頼関係ポリシーに `workspaces.amazonaws.com` サービスプリンシパルの `sts:AssumeRole` アクションが含まれていることを確認します。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "workspaces.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>

このトピックでは、WorkSpaces で使用する新しい 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 ロールを作成したら、WorkSpaces を起動するときにロールを WorkSpaces に適用できます。既存の WorkSpaces に IAM ロールを適用することもできます。

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

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

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

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

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

```
aws ec2 describe-instances --region us-east-1 --profile workspaces_machine_role
```

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

AWSTools for PowerShell バージョン 3.3.563.1 以降、Amazon Web Services SDK for .NET バージョン 3.3.103.22 以降を使用する必要があります。AWSTools for PowerShell と Amazon Web Services SDK for .NET を含む AWSTools for Windows インストーラは、[AWSTools for PowerShell](https://aws.amazon.com/powershell/) ウェブサイトからダウンロードできます。

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

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

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

# Amazon WorkSpaces コンソールのオペレーションのアクセス許可に関するリファレンス
<a name="wsp-console-permissions-ref"></a>

一部の Amazon WorkSpaces API は、AWS マネジメントコンソールを介してのみ呼び出すことができます。これらはプログラムで呼び出すことができないという意味ではパブリック API ではなく、どの SDK からも提供されていません。これらの API オペレーションには、以下が含まれます。
+ workspaces:DirectoryAccessManagement
+ workspaces:CreateRootClientCertificate
+ workspaces:UpdateRootClientCertificate
+ workspaces:DeleteRootClientCertificate
+ workspaces:DescribeConsent
+ workspaces:UpdateConsent

## WorkSpaces コンソールのオペレーションとアクションに必要なアクセス許可
<a name="wsp-console-operations"></a>

コンソールは機能に追加の API アクションを使用するため、WorkSpaces パブリック API のアクセス許可では不十分な場合があります。たとえば、CLI/SDK 経由で [CreateWorkspaces](https://docs.aws.amazon.com/workspaces/latest/api/API_CreateWorkspaces.html) API を使用するアクセス許可を持つユーザーは、ユーザーを選択または作成するための特定のアクセス許可がないため、コンソールで WorkSpace を作成しようとするとエラーが発生する可能性があります。この表は、WorkSpaces コンソールでのみ使用できる機能と、ユーザーがコンソールのこれらの特定部分を使用するために必要な追加のアクセス許可を示しています。

「[ポリシーの例](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#workspaces-example-iam-policies)」セクションには、Personal、Pools、BYOL WorkSpaces のすべての WorkSpaces タスクを実行するためのアクセス許可のリストが含まれています。

また、詳細なアクセス許可を使用し、最小特権のアクセス許可を適用してタスクを実行することもできます。

この表は、SDK によって提供されていない API に依存する WorkSpaces コンソール機能と、ユーザーがコンソールのこれらの特定部分を使用するために必要なアクセス許可を示しています。これらのアクセス許可は、SDK によって提供される API に必要な他のアクションに加えて追加する必要があります。


| WorkSpaces コンソールのオペレーション | 必要なアクセス許可 | 
| --- | --- | 
|  [WorkSpaces Personal の Quick Setup](https://docs.aws.amazon.com/workspaces/latest/adminguide/managing-wsp-personal.html#getting-started)  |  workspaces:DirectoryAccessManagement ds:\$1 ec2:CreateVpc ec2:CreateSubnet ec2:CreateNetworkInterface ec2:CreateInternetGateway ec2:CreateRouteTable ec2:CreateRoute ec2:CreateTags ec2:CreateSecurityGroup ec2:DescribeInternetGateways ec2:DescribeSecurityGroups ec2:DescribeRouteTables ec2:DescribeVpcs ec2:DescribeSubnets ec2:DescribeNetworkInterfaces ec2:DescribeAvailabilityZones ec2:AttachInternetGateway ec2:AssociateRouteTable ec2:AuthorizeSecurityGroupIngress ec2:AuthorizeSecurityGroupEgress iam:CreateRole iam:GetRole iam:PutRolePolicy workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:CreateWorkspaces workspaces:DescribeWorkspaces workspaces:RegisterWorkspaceDirectory workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspaces  | 
|  [WorkSpaces Personal で信頼されたデバイスへのアクセスを制限する](https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html#configure-restriction)  |  workspaces:CreateRootClientCertificate workspaces:UpdateRootClientCertificate workspaces:DeleteRootClientCertificate ds:DescribeDirectories ec2:DescribeSubnets ec2:DescribeSecurityGroups workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeTags workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddins workspaces:DirectoryAccessManagement  | 
|  [コンソールでの WorkSpace Personal における WorkSpace の作成](https://docs.aws.amazon.com/workspaces/latest/adminguide/create-workspaces-personal.html) – Directory Service ディレクトリユーザーを作成/検索/説明する  |  workspaces:DirectoryAccessManagement workspaces:DescribeAccount workspaces:CreateWorkspaces workspaces:DescribeWorkspaces workspaces:DescribeWorkspaceDirectories workspaces:DescribeWorkspaceBundles workspaces:DescribeTags workspaces:CreateTags workspaces:DescribeClientProperties kms:ListKeys kms:ListAliases kms:DescribeKey ds:DescribeTrusts ds:DescribeDirectories ec2:DescribeSubnets ec2:DescribeSecurityGroups  | 
|  [WorkSpaces Personal におけるユーザーの管理](https://docs.aws.amazon.com/workspaces/latest/adminguide/manage-workspaces-users.html) – ユーザーを編集してユーザー招待メールを送信する  |  workspaces:DirectoryAccessManagement workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeWorkspaces workspaces:DescribeTags workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspacesConnectionStatus workspaces:DescribeWorkspaceAssociations workspaces:DescribeWorkspaceSnapshots workspaces:DescribeWorkspaceImages workspaces:DescribeConnectionAliases  | 
|  [WorkSpaces Personal の AD Connector アカウント (AD Connector) を更新する](https://docs.aws.amazon.com/workspaces/latest/adminguide/connect-account.html)  |  workspaces:DirectoryAccessManagement ds:DescribeDirectories ds:UpdateDirectory ec2:DescribeSubnets ec2:DescribeSecurityGroups workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeTags workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddins  | 
|  [WorkSpaces Personal の組織単位を選択する](https://docs.aws.amazon.com/workspaces/latest/adminguide/select-ou.html)  |  workspaces:DirectoryAccessManagement ds:DescribeDirectories ec2:DescribeSubnets ec2:DescribeSecurityGroups workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeTags workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddins workspaces:ModifyWorkspaceCreationProperties  | 
|  [BYOL のアカウントの有効化](https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html) – BYOL WorkSpaces を使用するための要件の理解を確認する  |  workspaces:DescribeConsent workspaces:UpdateConsent workspaces:DescribeAccount workspaces:ListAccountLinks workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspaceImages workspaces:DescribeWorkspaceDirectories  | 