

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

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

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

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

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ 의 사용자 및 그룹 AWS IAM Identity Center:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](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에 대한 자세한 내용은 [https://docs.aws.amazon.com/IAM/latest/UserGuide/](https://docs.aws.amazon.com/IAM/latest/UserGuide/)의 [Identity and Access Management(IAM)](https://aws.amazon.com/iam)를 참조하세요.
+ IAM 권한 정책에 사용할 수 있는 WorkSpaces 관련 리소스, 작업 및 조건 컨텍스트 키에 대한 자세한 내용은 *IAM 사용 설명서*의 [Amazon WorkSpaces에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonworkspaces.html)에서 확인할 수 있습니다.
+ IAM 정책을 생성하는 데 도움이 되는 도구는 [AWS 정책 생성기](https://aws.amazon.com/blogs/aws/aws-policy-generator/)를 참조하세요. 또한 [IAM 정책 시뮬레이터](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>

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

### 예제 1: WorkSpaces 개인 및 풀 태스크를 수행할 수 있는 액세스 권한 부여
<a name="perform-workspaces-personal-pools-tasks"></a>

다음 정책 문은 WorkSpaces 개인 및 풀 태스크를 수행할 수 있는 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 Management Console IAM 사용자에게 다음 작업 및 리소스에 대한 권한이 있어야 합니다.
+ 작업: `"ds:*"`
+ 리소스: `"Resource": "*"`

다음 예시 정책은 IAM 사용자가 AWS Management Console에서 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 사용자에게 Bring Your Own License(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을 정의합니다.

### WorkSpaces 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*  
WorkSpaces의 ID(예: `ws-a1bcd2efg`).

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

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

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

### 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*  
WorkSpaces 풀의 ID(예: `ws-a1bcd2efg`).

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

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

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

### 인증서 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*  
WorkSpaces 인증서의 ID(예: `ws-a1bcd2efg`).

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

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

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

### 이미지 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*  
WorkSpaces 이미지의 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*  
WorkSpaces 번들의 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>

다음 API 작업에는 리소스 ARN을 지정할 수 없습니다.
+ `AssociateIpGroups`
+ `CreateIpGroup`
+ `CreateTags`
+ `DeleteTags`
+ `DeleteWorkspaceImage`
+ `DescribeAccount`
+ `DescribeAccountModifications`
+ `DescribeIpGroups`
+ `DescribeTags`
+ `DescribeWorkspaceDirectories`
+ `DescribeWorkspaceImages`
+ `DescribeWorkspaces`
+ `DescribeWorkspacesConnectionStatus`
+ `DisassociateIpGroups`
+ `ImportWorkspaceImage`
+ `ListAvailableManagementCidrRanges`
+ `ModifyAccount`

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

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

**workspaces\$1DefaultRole 역할을 생성하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

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

1. **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형 선택** 아래에서 **다른 AWS 계정**을 선택합니다.

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

1. **옵션**에서 Multi-Factor Authentication(MFA)을 지정하지 마세요.

1. **다음: 권한**을 선택합니다.

1. **권한 정책 연결** 페이지에서 AWS 관리형 정책 **AmazonWorkSpacesServiceAccess**, **AmazonWorkSpacesSelfServiceAccess** 및 **AmazonWorkSpacesPoolServiceAccess**를 선택합니다. 관리형 정책에 대한 자세한 내용은 [AWS WorkSpaces에 대한 관리형 정책](managed-policies.md) 섹션을 참조하세요.

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

1. **다음: 태그**를 선택합니다.

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

1. **다음: 검토**를 선택합니다.

1. **검토** 페이지의 **역할 이름**에 **workspaces\$1DefaultRole**을 입력합니다.

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

1. **역할 생성**을 선택합니다.

1. workspaces\$1DefaultRole 역할에 대한 **요약** 페이지에서 **신뢰 관계** 탭을 선택합니다.

1. **신뢰 관계** 탭에서 **신뢰 관계 편집**을 선택합니다.

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

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

1. **신뢰 정책 업데이트**를 선택합니다.

## AmazonWorkSpacesPCAAccess 서비스 역할 생성
<a name="create-pca-access-role"></a>

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

**를 사용하여 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
   ```