Gestion des identités et des accès pour WorkSpaces - Amazon WorkSpaces

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des identités et des accès pour WorkSpaces

Par défaut, IAM les utilisateurs ne sont pas autorisés à accéder aux WorkSpaces ressources et aux opérations. Pour permettre IAM aux utilisateurs de gérer les WorkSpaces ressources, vous devez créer une IAM politique qui leur accorde explicitement des autorisations et associer cette politique aux IAM utilisateurs ou aux groupes qui ont besoin de ces autorisations.

Note

Amazon WorkSpaces ne prend pas en charge la fourniture d'IAMinformations d'identification dans un WorkSpace (comme dans le cas d'un profil d'instance).

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :

Vous trouverez ci-dessous des ressources supplémentaires pour IAM :

Exemples de politiques

Les exemples suivants présentent des déclarations de politique que vous pouvez utiliser pour contrôler les autorisations accordées IAM aux utilisateurs sur Amazon WorkSpaces.

La déclaration de politique suivante accorde à un IAM utilisateur l'autorisation d'effectuer des tâches WorkSpaces personnelles et des tâches de pool.

{ "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", "workdocs:AddUserToGroup", "workdocs:DeregisterDirectory", "workdocs:RegisterDirectory", "sso-directory:SearchUsers", "sso:CreateApplication", "sso:DeleteApplication", "sso:DescribeApplication", "sso:DescribeInstance", "sso:GetApplicationGrant", "sso:ListInstances", "sso:PutApplicationAssignment", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationGrant" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }

La déclaration de politique suivante accorde à un IAM utilisateur l'autorisation d'effectuer toutes les tâches WorkSpaces personnelles.

Bien qu'Amazon WorkSpaces prenne totalement en charge les Resource éléments Action et lors de l'utilisation des outils de ligne de commande API et, pour utiliser Amazon à WorkSpaces partir du AWS Management Console, un IAM utilisateur doit disposer d'autorisations pour les actions et ressources suivantes :

  • Action : workspaces:*" et "ds:*"

  • Ressources : "Resource": "*"

L'exemple de politique suivant montre comment autoriser un IAM utilisateur à utiliser Amazon à WorkSpaces partir du AWS Management Console.

{ "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", "secretsmanager:ListSecrets", "sso-directory:SearchUsers", "sso:CreateApplication", "sso:DeleteApplication", "sso:DescribeApplication", "sso:DescribeInstance", "sso:GetApplicationGrant", "sso:ListInstances", "sso:PutApplicationAssignment", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationGrant" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }

La déclaration de politique suivante accorde à un IAM utilisateur l'autorisation d'effectuer toutes les tâches du WorkSpaces pool.

{ "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" } } } ] }

La déclaration de politique suivante accorde à un IAM utilisateur l'autorisation d'effectuer toutes les WorkSpaces tâches, y compris les EC2 tâches Amazon nécessaires à la création de Bring Your Own License (BYOL) WorkSpaces.

{ "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", "workdocs:AddUserToGroup", "workdocs:DeregisterDirectory", "workdocs:RegisterDirectory" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }

Spécifier WorkSpaces les ressources dans une IAM politique

Pour spécifier une WorkSpaces ressource dans l'Resourceélément de la déclaration de politique, utilisez le nom de ressource Amazon (ARN) de la ressource. Vous contrôlez l'accès à vos WorkSpaces ressources en autorisant ou en refusant les autorisations d'utiliser les API actions spécifiées dans l'Actionélément de votre déclaration de IAM politique. WorkSpaces définit ARNs des ensembles WorkSpaces, des groupes d'adresses IP et des annuaires.

La syntaxe de WorkSpace ARN A est celle illustrée dans l'exemple suivant.

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

La région dans laquelle WorkSpace se trouve (par exemple,us-east-1).

account_id

L'identifiant du AWS compte, sans tiret (par exemple,123456789012).

identificateur_espace de travail

L'ID du WorkSpace (par exemple,ws-a1bcd2efg).

Voici le format de l'Resourceélément d'une déclaration de politique qui identifie un élément spécifique WorkSpace.

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

Vous pouvez utiliser le * caractère générique pour spécifier tout WorkSpaces ce qui appartient à un compte spécifique dans une région spécifique.

La syntaxe d'un WorkSpace pool ARN est celle illustrée dans l'exemple suivant.

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

La région dans laquelle WorkSpace se trouve (par exemple,us-east-1).

account_id

L'identifiant du AWS compte, sans tiret (par exemple,123456789012).

espace de travail pool_identifier

L'ID du WorkSpace pool (par exemple,ws-a1bcd2efg).

Voici le format de l'Resourceélément d'une déclaration de politique qui identifie un élément spécifique WorkSpace.

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

Vous pouvez utiliser le * caractère générique pour spécifier tout WorkSpaces ce qui appartient à un compte spécifique dans une région spécifique.

La syntaxe WorkSpace d'ARNune image est celle illustrée dans l'exemple suivant.

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

La région dans laquelle se trouve l' WorkSpace image (par exemple,us-east-1).

account_id

L'identifiant du AWS compte, sans tiret (par exemple,123456789012).

bundle_identifier

L'ID de l' WorkSpace image (par exemple,wsi-a1bcd2efg).

Voici le format de l'élément Resource d'une déclaration de politique qui identifie une image spécifique.

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

Vous pouvez utiliser le caractère générique * pour spécifier toutes les images qui appartiennent à un compte spécifique dans une région donnée.

La syntaxe d'un bundle ARN est celle illustrée dans l'exemple suivant.

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

La région dans laquelle WorkSpace se trouve (par exemple,us-east-1).

account_id

L'identifiant du AWS compte, sans tiret (par exemple,123456789012).

bundle_identifier

L'ID du WorkSpace bundle (par exemple,wsb-a1bcd2efg).

Voici le format de l'élément Resource d'une déclaration de stratégie qui identifie un bundle spécifique.

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

Vous pouvez utiliser le caractère générique * pour spécifier tous les bundles qui appartiennent à un compte spécifique dans une région donnée.

La syntaxe d'un groupe IP ARN est celle illustrée dans l'exemple suivant.

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

La région dans laquelle WorkSpace se trouve (par exemple,us-east-1).

account_id

L'identifiant du AWS compte, sans tiret (par exemple,123456789012).

ipgroup_identifier

ID du groupe d'IP (par exemple, wsipg-a1bcd2efg).

Voici le format de l'élément Resource d'une déclaration de stratégie qui identifie un groupe d'IP spécifique.

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

Vous pouvez utiliser le caractère générique * pour spécifier tous les groupes d'IP qui appartiennent à un compte spécifique dans une région donnée.

La syntaxe d'un répertoire ARN est celle illustrée dans l'exemple suivant.

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

La région dans laquelle WorkSpace se trouve (par exemple,us-east-1).

account_id

L'identifiant du AWS compte, sans tiret (par exemple,123456789012).

directory_identifier

ID de l'annuaire (par exemple, d-12345a67b8).

Voici le format de l'élément Resource d'une déclaration de stratégie qui identifie un annuaire spécifique.

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

Vous pouvez utiliser le caractère générique * pour spécifier tous les annuaires qui appartiennent à un compte spécifique dans une région donnée.

La syntaxe d'un alias de connexion ARN est celle illustrée dans l'exemple suivant.

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

Région dans laquelle se trouve l'alias de connexion (par exemple,us-east-1).

account_id

L'identifiant du AWS compte, sans tiret (par exemple,123456789012).

connectionalias_identifier

ID de l'alias de connexion (par exemple,wsca-12345a67b8).

Voici le format de l'élément Resource d'une déclaration de politique qui identifie un alias de connexion spécifique.

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

Vous pouvez utiliser le caractère générique * pour spécifier tous les alias de connexion qui appartiennent à un compte spécifique dans une région donnée.

Vous ne pouvez pas spécifier une ressource ARN avec les API actions suivantes :

  • AssociateIpGroups

  • CreateIpGroup

  • CreateTags

  • DeleteTags

  • DeleteWorkspaceImage

  • DescribeAccount

  • DescribeAccountModifications

  • DescribeIpGroups

  • DescribeTags

  • DescribeWorkspaceDirectories

  • DescribeWorkspaceImages

  • DescribeWorkspaces

  • DescribeWorkspacesConnectionStatus

  • DisassociateIpGroups

  • ImportWorkspaceImage

  • ListAvailableManagementCidrRanges

  • ModifyAccount

Pour les API actions qui ne prennent pas en charge les autorisations au niveau des ressources, vous devez spécifier l'instruction de ressource illustrée dans l'exemple suivant.

"Resource": "*"

Pour les API actions suivantes, vous ne pouvez pas spécifier d'identifiant de compte dans la ressource ARN lorsque celle-ci n'appartient pas au compte :

  • AssociateConnectionAlias

  • CopyWorkspaceImage

  • DisassociateConnectionAlias

Pour ces API actions, vous pouvez spécifier un ID de compte dans la ressource ARN uniquement lorsque ce compte possède les ressources sur lesquelles agir. Lorsque le compte ne possède pas les ressources, vous devez spécifier * pour l'ID du compte, comme l'illustre l'exemple suivant.

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

Création du rôle workspaces_ DefaultRole

Avant de pouvoir enregistrer un répertoire à l'aide duAPI, vous devez vérifier qu'un rôle nommé workspaces_DefaultRole existe. Ce rôle est créé par le programme d'installation rapide ou si vous WorkSpace lancez un AWS Management Console, et il WorkSpaces autorise Amazon à accéder à des données spécifiques AWS ressources en votre nom. Si ce rôle n'existe pas, vous pouvez le créer à l'aide de la procédure suivante.

Pour créer le rôle workspaces_ DefaultRole
  1. Connectez-vous au AWS Management Console et ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de gauche, sélectionnez Roles (Rôles).

  3. Sélectionnez Create role (Créer un rôle).

  4. Sous Sélectionner le type d'entité de confiance, choisissez Autre AWS compte.

  5. Pour Account ID (ID de compte), saisissez votre ID de compte sans tirets ni espaces.

  6. Pour les options, ne spécifiez pas l'authentification multifactorielle (MFA).

  7. Sélectionnez Next: Permissions (Étape suivante : autorisations).

  8. Sur la page Joindre les politiques d'autorisation, sélectionnez AWS politiques gérées AmazonWorkSpacesServiceAccessAmazonWorkSpacesSelfServiceAccess, et AmazonWorkSpacesPoolServiceAccess. Pour plus d'informations sur ces politiques gérées, consultezAWS politiques gérées pour WorkSpaces.

  9. Sous Définir une limite d'autorisations, nous vous recommandons de ne pas utiliser de limite d'autorisations en raison du risque de conflits avec les stratégies attachées à ce rôle. De tels conflits pourraient bloquer certaines autorisations nécessaires pour le rôle.

  10. Choisissez Suivant : Balises.

  11. Dans la page Add tags (optional) (Ajouter des balises (facultatif)), ajoutez des balises si nécessaire.

  12. Choisissez Suivant : Vérification.

  13. Sur la page Vérification, pour Nom du rôle, saisissez workspaces_DefaultRole.

  14. (Facultatif) Pour Role description (Description du rôle), entrez une description.

  15. Choisissez Create Role (Créer le rôle).

  16. Sur la page Résumé du DefaultRole rôle workspaces_, choisissez l'onglet Relations de confiance.

  17. Dans l'onglet Trust relationships (Relations d'approbation), choisissez Edit trust relationship (Modifier la relation d'approbation).

  18. Dans la page Edit Trust Relationship (Modifier la relation d'approbation) remplacez la déclaration de stratégie existante par la déclaration suivante.

    { "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  19. Choisissez Mettre à jour la politique d'approbation.

Création du rôle AmazonWorkSpaces PCAAccess de service

Avant que les utilisateurs puissent se connecter via l'authentification basée sur des certificats, vous devez vérifier qu'il existe un rôle nommé AmazonWorkSpacesPCAAccess. Ce rôle est créé lorsque vous activez l'authentification basée sur des certificats dans un annuaire à l'aide du AWS Management Console, et il WorkSpaces autorise Amazon à accéder AWS Private CA ressources en votre nom. Si ce rôle n'existe pas parce que vous n'utilisez pas la console pour gérer l'authentification basée sur des certificats, vous pouvez le créer à l'aide de la procédure suivante.

Pour créer le rôle de AmazonWorkSpaces PCAAccess service à l'aide du AWS CLI
  1. Créez un JSON fichier nommé AmazonWorkSpacesPCAAccess.json avec le texte suivant.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "prod.euc.ecm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Ajustez le AmazonWorkSpacesPCAAccess.json chemin selon vos besoins et exécutez ce qui suit AWS CLI commandes pour créer le rôle de service et associer la politique AmazonWorkspacesPCAAccessgérée.

    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