翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
WorkSpaces の Identity and Access Management
デフォルトでは、IAM ユーザーには WorkSpaces のリソースおよびオペレーションのための許可がありません。IAM ユーザーに WorkSpaces のリソース管理を許可するには、それらのユーザーに許可を明示的に付与する IAM ポリシーを作成し、このポリシーを許可を必要とする IAM ユーザーまたはグループと結びつける必要があります。
アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
-
AWS IAM Identity Center のユーザーとグループ:
アクセス許可セットを作成します。「AWS IAM Identity Center ユーザーガイド」の「シークレットの作成と管理」の手順に従ってください。
-
ID プロバイダーを通じて IAM で管理されているユーザー:
ID フェデレーションのロールを作成する。詳細については、「IAM ユーザーガイド」の「サードパーティー ID プロバイダー (フェデレーション) 用のロールの作成」を参照してください。
-
IAM ユーザー:
-
ユーザーが設定できるロールを作成します。手順については、「IAM ユーザーガイド」の「IAM ユーザー用ロールの作成」を参照してください。
-
(非推奨) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。「IAM ユーザーガイド」の「ユーザー (コンソール) へのアクセス許可の追加」の指示に従います。
-
IAM ポリシーの詳細については、IAM ユーザーガイドのポリシーとアクセス許可を参照してください。
WorkSpaces はまた、WorkSpaces サービスが必要なリソースにアクセスするのを許可する IAM ロール workspaces_DefaultRole
を作成します。
IAM の詳細については、Identity and Access Management (IAM)
IAM ポリシーの作成に役立つツールについては、AWS Policy Generator
注記
Amazon WorkSpaces は、WorkSpace への IAM 認証情報のプロビジョニング (インスタンスプロファイルなど) をサポートしていません。
目次
ポリシーの例
以下の例では、Amazon WorkSpaces に対して IAM ユーザーが所有するアクセス許可を制御するために使用できるポリシーステートメントを示しています。
例 1: すべての WorkSpaces タスクを実行する
次のポリシーステートメントは、ディレクトリの作成や管理などすべての WorkSpaces タスクを実行するための許可を IAM ユーザーに付与します。また、クイックセットアップ手順を実行するアクセス許可も付与されます。
Amazon WorkSpaces は、API およびコマンドラインツールを使用する際に Action
および Resource
要素を完全にサポートしますが、AWS Management Console から Amazon WorkSpaces を使用するには、IAM ユーザーに次のアクションおよびリソースのための許可が必要です。
-
アクション: "
workspaces:*"
と"ds:*"
-
リソース:
"Resource": "*"
次のポリシー例では、IAM ユーザーが AWS Management Console から Amazon WorkSpaces を使用することを許可する方法を示しています。
{ "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", "workdocs:RegisterDirectory", "workdocs:DeregisterDirectory", "workdocs:AddUserToGroup" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }
例 2: WorkSpace 固有のタスクを実行します
次のポリシーステートメントは、WorkSpaces の起動や削除など、WorkSpace 固有のタスクを実行するためのアクセス許可を IAM ユーザーに付与します。ポリシーステートメントで、ds:*
アクションは広範なアクセス許可 (アカウント内のすべての Directory Services オブジェクトの完全なコントロール) を付与します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "iam:PutRolePolicy" ], "Resource": "*" } ] }
WorkSpaces 内のユーザーが Amazon WorkDocs を有効にすることも許可するには、次の例に示すように workdocs
オペレーションを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "workdocs:AddUserToGroup" ], "Resource": "*" } ] }
ユーザーが Launch WorkSpaces ウィザードを使用することも許可するには、次の例に示すように kms
オペレーションを追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "workdocs:AddUserToGroup", "kms:ListAliases", "kms:ListKeys" ], "Resource": "*" } ] }
例 3: BYOL WorkSpaces のすべての WorkSpaces タスクを実行する
次のポリシーステートメントでは、IAM ユーザーに対し、自分のライセンスを使用する (BYOL) WorkSpaces の作成に必要な Amazon EC2 タスクを含む、すべての WorkSpaces タスクを実行するための許可を付与しています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "iam:GetRole", "iam:CreateRole", "iam:PutRolePolicy", "kms:ListAliases", "kms:ListKeys", "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:CreateNetworkInterface", "ec2:CreateInternetGateway", "ec2:CreateRouteTable", "ec2:CreateRoute", "ec2:CreateTags", "ec2:CreateSecurityGroup", "ec2:DescribeImages", "ec2:ModifyImageAttribute", "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", "workdocs:RegisterDirectory", "workdocs:DeregisterDirectory", "workdocs:AddUserToGroup" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }
IAM ポリシーで WorkSpaces リソースを指定する
ポリシーステートメントの Resource
要素で WorkSpaces リソースを指定するためには、リソースの Amazon リソースネーム (ARN) を使用します。IAM ポリシーステートメントの Action
要素に指定された API アクションを使用する許可を許可または拒否することで、WorkSpaces リソースへのアクセスを制御できます。WorkSpaces は、WorkSpaces、バンドル、IP グループ、およびディレクトリの ARN を定義します。
WorkSpace ARN
WorkSpace ARN には、次の例に示す構文があります。
arn:aws:workspaces:region
:account_id
:workspace/workspace_identifier
- リージョン
-
WorkSpace があるリージョン (例:
us-east-1
)。 - account_id
-
ハイフンなしの AWS アカウントの ID (例:
123456789012
)。 - workspace_identifier
-
WorkSpace の ID(例:
ws-a1bcd2efg
)。
次に示すのは、特定の WorkSpace を識別するポリシーステートメントの Resource
要素の形式です。
"Resource": "arn:aws:workspaces:region
:account_id
:workspace/workspace_identifier
"
「*
」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての WorkSpace を指定できます。
イメージ ARN
WorkSpace イメージ ARN には、次の例に示す構文があります。
arn:aws:workspaces:region
:account_id
:workspaceimage/image_identifier
- リージョン
-
WorkSpace イメージがあるリージョン (例:
us-east-1
)。 - account_id
-
ハイフンなしの AWS アカウントの ID (例:
123456789012
)。 - bundle_identifier
-
WorkSpace イメージの ID (例:
wsi-a1bcd2efg
)。
次に示すのは、特定のイメージを識別するポリシーステートメントの Resource
要素の形式です。
"Resource": "arn:aws:workspaces:region
:account_id
:workspaceimage/image_identifier
"
「*
」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべてのイメージを指定できます。
バンドル ARN
バンドル ARN には、次の例に示す構文があります。
arn:aws:workspaces:region
:account_id
:workspacebundle/bundle_identifier
- リージョン
-
WorkSpace があるリージョン (例:
us-east-1
)。 - account_id
-
ハイフンなしの AWS アカウントの ID (例:
123456789012
)。 - bundle_identifier
-
WorkSpace バンドルの ID(例:
wsb-a1bcd2efg
)。
次に示すのは、特定のバンドルを識別するポリシーステートメントの Resource
要素の形式です。
"Resource": "arn:aws:workspaces:region
:account_id
:workspacebundle/bundle_identifier
"
「*
」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべてのバンドルを指定できます。
IP グループ ARN
IP グループ ARN には、次の例に示す構文があります。
arn:aws:workspaces:region
:account_id
:workspaceipgroup/ipgroup_identifier
- リージョン
-
WorkSpace があるリージョン (例:
us-east-1
)。 - account_id
-
ハイフンなしの AWS アカウントの ID (例:
123456789012
)。 - ipgroup_identifier
-
IP グループの ID (例:
wsipg-a1bcd2efg
)。
次に示すのは、特定の IP グループを識別するポリシーステートメントの Resource
要素の形式です。
"Resource": "arn:aws:workspaces:region
:account_id
:workspaceipgroup/ipgroup_identifier
"
「*
」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての IP グループを指定できます。
ディレクトリ ARN
ディレクトリ ARN には、次の例に示す構文があります。
arn:aws:workspaces:region
:account_id
:directory/directory_identifier
- リージョン
-
WorkSpace があるリージョン (例:
us-east-1
)。 - account_id
-
ハイフンなしの AWS アカウントの ID (例:
123456789012
)。 - directory_identifier
-
ディレクトリの ID (例:
d-12345a67b8
)。
次に示すのは、特定のディレクトリを識別するポリシーステートメントの Resource
要素の形式です。
"Resource": "arn:aws:workspaces:region
:account_id
:directory/directory_identifier
"
「*
」ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべてのディレクトリを指定できます。
接続エイリアス ARN
接続エイリアス ARN には、次の例に示す構文があります。
arn:aws:workspaces:region
:account_id
:connectionalias/connectionalias_identifier
- リージョン
-
接続エイリアスがあるリージョン (例:
us-east-1
)。 - account_id
-
ハイフンなしの AWS アカウントの ID (例:
123456789012
)。 - connectionalias_identifier
-
接続エイリアスの ID (例:
wsca-12345a67b8
)。
次に示すのは、特定の接続エイリアスを識別するポリシーステートメントの Resource
要素の形式です。
"Resource": "arn:aws:workspaces:region
:account_id
:connectionalias/connectionalias_identifier
"
*
ワイルドカードを使用して、特定リージョンの特定のアカウントに属するすべての接続エイリアスを指定できます。
リソースレベルのアクセス許可をサポートしない API アクション
リソース ARN は、次の API アクションで指定することはできません。
AssociateIpGroups
CreateIpGroup
CreateTags
DeleteTags
DeleteWorkspaceImage
DescribeAccount
DescribeAccountModifications
DescribeIpGroups
DescribeTags
DescribeWorkspaceDirectories
DescribeWorkspaceImages
DescribeWorkspaces
DescribeWorkspacesConnectionStatus
DisassociateIpGroups
ImportWorkspaceImage
ListAvailableManagementCidrRanges
ModifyAccount
リソースレベルの権限をサポートしていない API アクションの場合は、次の例に示すように、Resource ステートメントを指定する必要があります。
"Resource": "*"
共有リソースに対するアカウントレベルの制限をサポートしない API アクション
次の API アクションでは、リソースがアカウントによって所有されていない場合、リソース ARN でアカウント ID を指定することはできません。
AssociateConnectionAlias
CopyWorkspaceImage
DisassociateConnectionAlias
これらの API アクションでは、アクション対象のリソースをそのアカウントが所有している場合にのみ、リソース ARN でアカウント ID を指定できます。アカウントがリソースを所有していない場合は、次の例に示すように、アカウント ID に *
を指定する必要があります。
"arn:aws:workspaces:
region
:*:resource_type
/resource_identifier
"
workspaces_DefaultRole ロールを作成する
API を使用してディレクトリを登録する前に、workspaces_DefaultRole
という名前のロールが存在していることを確認します。このロールは、高速セットアップによって作成されます。または、AWS Management Console を使用して WorkSpace を起動した場合、特定の AWS リソースにアクセスする許可が Amazon WorkSpaces 自動的に付与されます。このロールが存在しない場合は、以下の手順で作成できます。
workspaces_DefaultRole ロールを作成するには
-
AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/)
を開きます。 -
左側のナビゲーションペインで、[Roles] を選択します。
-
[ロールの作成] を選択します。
-
[Select type of trusted entity] (信頼できるエンティティのタイプを選択) で、[Another AWS account] (別の アカウント) を選択します。
-
[Account ID] には、ハイフンやスペースを入れずにアカウント ID を入力します。
-
[Options] では、多要素認証 (MFA) を指定しないでください。
-
[Next: Permissions (次へ: アクセス許可)] を選択します。
-
[Attach permissions policies] (許可ポリシーをアタッチ) ページで、AWS 管理ポリシーとして AmazonWorkSpacesServiceAccess と AmazonWorkSpacesSelfServiceAccess を選択します。
-
[許可の境界を設定] では、このロールにアタッチされているポリシーと競合する可能性があるため、アクセス許可の境界を使用しないことをお勧めします。このような競合が発生すると、ロールに必要な特定の許可がブロックされる可能性があります。
-
[次へ: タグ] を選択します。
-
[Add tags (optional)] ページで、必要に応じてタグを追加します。
-
[Next: Review] を選択します。
-
[Review] ページの [Role name] に、
workspaces_DefaultRole
を入力します。 -
(オプション) [ロールの説明] に、説明を入力します。
-
[ロールの作成] を選択します。
-
workspaces_DefaultRole ロールの [Summary] ページで [Trust relationships] タブを選択します。
-
[信頼関係] タブで、[信頼関係の編集] を選択します。
-
[Edit Trust Relationship] ページで、既存のポリシーステートメントを次のステートメントに置き換えます。
{ "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
[Update Trust Policy] を選択します。
AmazonWorkSpacesPCAAccess サービスロールを作成する
ユーザーが証明書ベースの認証を使用してログインする前に、AmazonWorkSpacesPCAAccess
という名前のロールが存在することを確認する必要があります。このロールは、AWS Management Consoleを使用してディレクトリで証明書ベースの認証を有効にしたときに作成されます。このロールは、ユーザーに代わって AWS Private CA リソースにアクセスすることを Amazon WorkSpaces に許可します。コンソールを使用して証明書ベースの認証を管理していないために、このロールが存在しない場合は、次の手順で作成できます。
AWS CLI を使用して AmazonWorkSpacesPCAAccess サービスロールを作成するには
-
AmazonWorkSpacesPCAAccess.json
という名前の JSON ファイルを次の内容で作成します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "prod.euc.ecm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
必要に応じて
AmazonWorkSpacesPCAAccess.json
パスを調整し、次の AWS CLI コマンドを実行してサービスロールを作成します。次に、AmazonWorkspacesPCAAccess 管理ポリシーをアタッチします。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