WorkSpaces의 Identity and Access Management - 아마존 WorkSpaces

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

WorkSpaces의 Identity and Access Management

기본적으로 IAM 사용자는 WorkSpaces 리소스 및 작업에 대한 권한이 없습니다. IAM 사용자에게 WorkSpaces 리소스를 관리하도록 허용하려면 권한을 명시적으로 부여하는 IAM 정책을 생성한 다음, 해당 권한이 필요한 IAM 사용자 또는 그룹에 정책을 연결해야 합니다.

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가합니다.

  • AWS IAM Identity Center의 사용자 및 그룹:

    권한 세트를 생성합니다. AWS IAM Identity Center 사용 설명서권한 세트 생성의 지침을 따르세요.

  • 자격 증명 공급자를 통해 IAM에서 관리되는 사용자:

    아이덴티티 페더레이션을 위한 역할을 생성합니다. IAM 사용 설명서서드 파티 자격 증명 공급자의 역할 만들기(연합)의 지침을 따르세요.

  • IAM 사용자:

    • 사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용 설명서에서 IAM 사용자의 역할 생성의 지침을 따르세요.

    • (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서에서 사용자(콘솔)에 권한 추가의 지침을 따르세요.

IAM 정책에 대한 자세한 내용은 IAM 사용 설명서에서 정책 및 권한을 참조하세요.

또한 WorkSpaces는 IAM 역할인 workspaces_DefaultRole을 생성하여 WorkSpaces 서비스가 필요한 리소스에 액세스할 수 있도록 합니다.

IAM에 대한 자세한 내용은 IAM 사용 설명서Identity and Access Management(IAM)를 참조하세요. IAM 권한 정책에 사용할 수 있는 WorkSpaces 관련 리소스, 작업 및 조건 컨텍스트 키는 IAM 사용 설명서의 Amazon WorkSpaces에 사용되는 작업, 리소스 및 조건 키에서 확인할 수 있습니다.

IAM 정책을 생성하는 데 도움이 되는 도구는 AWS 정책 생성기를 참조하세요. 또한 IAM 정책 시뮬레이터를 사용하여 정책이 AWS에 대한 특정 요청을 허용하는지 또는 거부하는지를 테스트할 수 있습니다.

참고

Amazon WorkSpaces에서는 WorkSpace로의 IAM 보안 인증 정보 프로비저닝을 지원하지 않습니다(예: 인스턴스 프로파일 포함).

정책 예제

다음 예시는 IAM 사용자가 갖는 Amazon WorkSpaces 관련 권한을 제어하는 데 사용할 수 있는 정책 문을 보여 줍니다.

예 1: 모든 WorkSpaces 작업 수행

다음 정책 문은 IAM 사용자에게 디렉터리 생성 및 관리를 포함한 모든 WorkSpaces 작업을 수행할 수 있는 권한을 부여합니다. 또한 빠른 설정 절차를 실행할 수 있는 권한도 부여합니다.

Amazon WorkSpaces는 API 및 명령줄 도구를 사용할 때 ActionResource 요소를 완전히 지원하지만 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: WorkSpaces 관련 작업 수행

다음 정책 문은 IAM 사용자에게 WorkSpace 관련 작업(예: WorkSpaces 시작 및 제거)을 수행할 수 있는 권한을 부여합니다. 정책 문에서 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": "*" } ] }

또한 사용자에게 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을 정의합니다.

WorkSpaces ARN

WorkSpace ARN에는 다음 예제와 같은 구문이 있습니다.

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

WorkSpace가 위치한 리전(예: us-east-1)

account_id

하이픈을 제외한 AWS 계정의 ID(예: 123456789012)

workspace_identifier

WorkSpaces의 ID(예: ws-a1bcd2efg).

정책 설명에서 특정 WorkSpace를 식별하는 Resource 요소의 형식은 다음과 같습니다.

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

* 와일드카드를 사용하여 특정 리전의 특정 계정에 속하는 모든 WorkSpaces를 지정할 수 있습니다.

이미지 ARN

WorkSpace 이미지 ARN에는 다음 예시와 같은 구문이 있습니다.

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

WorkSpace 이미지가 위치한 리전(예: us-east-1)

account_id

하이픈을 제외한 AWS 계정의 ID(예: 123456789012)

bundle_identifier

WorkSpaces 이미지의 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

WorkSpaces 번들의 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 작업

다음 API 작업에는 리소스 ARN을 지정할 수 없습니다.

  • AssociateIpGroups

  • CreateIpGroup

  • CreateTags

  • DeleteTags

  • DeleteWorkspaceImage

  • DescribeAccount

  • DescribeAccountModifications

  • DescribeIpGroups

  • DescribeTags

  • DescribeWorkspaceDirectories

  • DescribeWorkspaceImages

  • DescribeWorkspaces

  • DescribeWorkspacesConnectionStatus

  • DisassociateIpGroups

  • ImportWorkspaceImage

  • ListAvailableManagementCidrRanges

  • ModifyAccount

리소스 수준 권한을 지원하지 않는 API 작업의 경우 다음 예제와 같이 리소스 명령문을 지정해야 합니다.

"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을 사용하여 WorkSpaces를 시작하는 경우 생성되며, 사용자 대신 특정 AWS 리소스에 액세스할 수 있는 권한을 Amazon WorkSpaces에 부여합니다. 이 역할이 없는 경우, 다음 절차에 따라 만들 수도 있습니다.

workspaces_DefaultRole 역할을 생성하려면
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 왼쪽의 탐색 창에서 역할을 선택합니다.

  3. 역할 생성을 선택합니다.

  4. Select type of trusted entity(신뢰할 수 있는 엔터티 유형 선택) 아래에서 다른 Another AWS account (AWS 계정)를 선택합니다.

  5. 계정 ID에 하이픈이나 공백 없이 계정 ID를 입력합니다.

  6. 옵션에서 Multi-Factor Authentication(MFA)을 지정하지 마십시오.

  7. 다음: 권한을 선택합니다.

  8. 권한 정책 연결 페이지에서 AWS 관리형 정책인 AmazonWorkSpacesServiceAccessAmazonWorkSpacesSelfServiceAccess를 선택합니다.

  9. 이 역할에 연결된 정책과 충돌할 가능성이 있으므로 권한 경계 설정에서 권한 경계를 사용하지 않는 것이 좋습니다. 충돌이 발생할 경우 역할에 필요한 특정 권한이 차단될 수 있습니다.

  10. Next: Tags(다음: 태그)를 선택합니다.

  11. 필요한 경우 Add tags (optional)(태그 추가(선택 사항)) 페이지에서 태그를 추가합니다.

  12. Next: Review(다음: 검토)를 선택합니다.

  13. 검토 페이지의 역할 이름workspaces_DefaultRole을 입력합니다.

  14. (선택 사항) 역할 설명에 설명을 입력합니다.

  15. 역할 생성을 선택합니다.

  16. workspaces_DefaultRole 역할에 대한 요약 페이지에서 신뢰 관계 탭을 선택합니다.

  17. 신뢰 관계(Trust relationships) 탭에서 신뢰 관계 편집(Edit trust relationship)을 선택합니다.

  18. Edit Trust Relationship(신뢰 관계 편집) 페이지에서 기존 정책 설명을 다음 설명으로 바꿉니다.

    { "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  19. 신뢰 정책 업데이트(Update Trust Policy)를 선택합니다.

AmazonWorkSpacesPCAAccess 서비스 역할 생성

사용자가 인증서 기반 인증을 사용하여 로그인할 수 있으려면 먼저 이름이 AmazonWorkSpacesPCAAccess인 역할이 존재하는지 확인해야 합니다. 이 역할은 AWS Management Console을 사용하여 디렉터리에서 인증서 기반 인증을 활성화할 때 생성되며, 사용자 대신 AWS Private CA 리소스에 액세스할 수 있는 권한을 Amazon WorkSpaces에 부여합니다. 콘솔을 사용하여 인증서 기반 인증을 관리하지 않아 이 역할이 존재하지 않는 경우 다음 절차를 사용하여 생성할 수 있습니다.

AWS CLI를 사용하여 AmazonWorkSpacesPCAAccess 서비스 역할을 생성하는 방법
  1. 다음 텍스트로 이름이 AmazonWorkSpacesPCAAccess.json인 JSON 파일을 생성합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "prod.euc.ecm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 필요에 따라 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