

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

# 에 대한 서비스 역할 생성 및 관리 AWS IoT TwinMaker
<a name="twinmaker-gs-service-role"></a>

AWS IoT TwinMaker 은(는) 서비스 역할을 사용하여 사용자 대신 다른 서비스의 리소스에 액세스할 수 있도록 해야 합니다. 이 역할은와 신뢰 관계가 있어야 합니다 AWS IoT TwinMaker. 워크스페이스를 생성할 때 이 역할을 워크스페이스에 할당해야 합니다. 이 주제에는 일반적인 시나리오에 대한 권한을 구성하는 방법을 보여 주는 정책 예제가 포함되어 있습니다.

## 신뢰 부여
<a name="twinmaker-gs-service-role-trust"></a>

다음 정책은 역할과 간의 신뢰 관계를 설정합니다 AWS IoT TwinMaker. 이 신뢰 관계를 워크스페이스에 사용하는 역할에 할당하십시오.

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

****  

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

------

## Amazon S3 권한
<a name="twinmaker-gs-service-role-s3"></a>

다음 정책은 역할이 Amazon S3 버킷에서 읽고 삭제하고 쓸 수 있는 권한을 부여합니다. 워크스페이스는 Amazon S3에 리소스를 저장하므로 모든 워크스페이스에 Amazon S3 권한이 필요합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucket*",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::*/DO_NOT_DELETE_WORKSPACE_*"
      ]
    }
  ]
}
```

------

**참고**  
워크스페이스를 생성할 때는 워크스페이스에서 사용 중임을 나타내는 파일을 Amazon S3 버킷에 AWS IoT TwinMaker 생성합니다. 이 정책은 워크스페이스를 삭제할 때 해당 파일을 삭제할 수 있는 AWS IoT TwinMaker 권한을 부여합니다.  
AWS IoT TwinMaker 는 워크스페이스와 관련된 다른 객체를 배치합니다. 워크스페이스를 삭제할 때 이러한 오브젝트를 삭제하는 것은 사용자의 책임입니다.

## 특정 Amazon S3 버킷에 대한 권한 할당
<a name="twinmaker-gs-service-role-bucket"></a>

 AWS IoT TwinMaker 콘솔에서 워크스페이스를 생성할 때 Amazon S3 버킷을 생성하도록 AWS IoT TwinMaker 선택할 수 있습니다. 다음 AWS CLI 명령을 사용하여이 버킷에 대한 정보를 찾을 수 있습니다.

```
  aws iottwinmaker get-workspace --workspace-id workspace name              
```

다음 예제에서는 이 명령의 출력 형식을 보여줍니다.

```
{
    "arn": "arn:aws:iottwinmaker:region:account Id:workspace/workspace name",
    "creationDateTime": "2021-11-30T11:30:00.000000-08:00",
    "description": "",
    "role": "arn:aws:iam::account Id:role/service role name",
    "s3Location": "arn:aws:s3:::bucket name",
    "updateDateTime": "2021-11-30T11:30:00.000000-08:00",
    "workspaceId": "workspace name"
}
```

특정 Amazon S3 버킷에 대한 권한을 할당하도록 정책을 업데이트하려면 *버킷 이름* 값을 사용하십시오.

다음 정책은 사용자의 역할이 특정 Amazon S3 버킷에서 읽고 삭제하고 쓸 수 있도록 허용합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucket*",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::bucket name",
        "arn:aws:s3:::bucket name/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::iottwinmakerbucket/DO_NOT_DELETE_WORKSPACE_*"
      ]
    }
  ]
}
```

------

## 기본 제공 커넥터에 대한 권한
<a name="twinmaker-gs-service-role-sitewise"></a>

워크스페이스가 내장 커넥터를 사용하여 다른 AWS 서비스와 상호 작용하는 경우이 정책에 해당 서비스에 대한 권한을 포함해야 합니다. **com.amazon.iotsitewise.connector** 구성 요소 유형을 사용하는 경우 AWS IoT SiteWise에 대한 권한을 포함해야 합니다. 구성 요소 유형에 대한 자세한 정보는 [구성 요소 유형 사용 및 생성](twinmaker-component-types.md)을(를) 참조하세요.

**참고**  
사용자 지정 구성 요소 유형을 사용하여 다른 AWS 서비스와 상호 작용하는 경우 구성 요소 유형에서 함수를 구현하는 Lambda 함수를 실행할 수 있는 권한을 역할에 부여해야 합니다. 자세한 내용은 [외부 데이터 소스에 대한 커넥터에 대한 권한](#twinmaker-gs-service-role-external) 단원을 참조하십시오.

다음 예제에서는 정책에 AWS IoT SiteWise 를 포함하는 방법을 보여줍니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucket*",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::bucket name",
        "arn:aws:s3:::bucket name/*"
      ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "iotsitewise:DescribeAsset"
        ],
        "Resource": "arn:aws:s3:::bucket name"
        },
    {
        "Effect": "Allow",
        "Action": [
            "iotsitewise:DescribeAssetModel"
        ],
        "Resource": "arn:aws:s3:::bucket name"
        },
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::*/DO_NOT_DELETE_WORKSPACE_*"
      ]
    }
  ]
}
```

------

**com.amazon.iotsitewise.connector** 구성 요소 유형을 사용하고 속성 데이터를 읽어야 하는 경우 정책에 다음 권한을 포함해야 AWS IoT SiteWise합니다.

```
...
{
    "Action": [
        "iotsitewise:GetPropertyValueHistory",
    ],
    "Resource": [
        "AWS IoT SiteWise asset resource ARN"
    ],
    "Effect": "Allow"
},
...
```

**com.amazon.iotsitewise.connector** 구성 요소 유형을 사용하고 속성 데이터를에 기록해야 하는 경우 정책에 다음 권한을 포함해야 AWS IoT SiteWise합니다.

```
...
{
    "Action": [
        "iotsitewise:BatchPutPropertyValues",
    ],
    "Resource": [
        "AWS IoT SiteWise asset resource ARN"
    ],
    "Effect": "Allow"
},
...
```

**com.amazon.iotsitewise.connector.edgevideo** 구성 요소 유형을 사용하는 경우 AWS IoT SiteWise 및 Kinesis Video Streams에 대한 권한을 포함해야 합니다. 다음 예제 정책은 정책에 AWS IoT SiteWise 및 Kinesis Video Streams 권한을 포함하는 방법을 보여줍니다.

```
...
{
    "Action": [
        "iotsitewise:DescribeAsset",
        "iotsitewise:GetAssetPropertyValue"
    ],
    "Resource": [
        "AWS IoT SiteWise asset resource ARN for the Edge Connector for Kinesis Video Streams"
    ],
    "Effect": "Allow"
},
{
    "Action": [
        "iotsitewise:DescribeAssetModel"
    ],
    "Resource": [
        "AWS IoT SiteWise model resource ARN for the Edge Connector for Kinesis Video Streams"
    ],
    "Effect": "Allow"
},
{
    "Action": [
        "kinesisvideo:DescribeStream"
    ],
    "Resource": [
        "Kinesis Video Streams stream ARN"
    ],
    "Effect": "Allow"
},
...
```

## 외부 데이터 소스에 대한 커넥터에 대한 권한
<a name="twinmaker-gs-service-role-external"></a>

외부 데이터 소스에 연결하는 함수를 사용하는 구성 요소 유형을 생성하는 경우, 해당 함수를 구현하는 Lambda 함수를 사용할 권한을 서비스 역할에 부여해야 합니다. 구성 요소 유형 및 함수 생성에 대한 자세한 내용은 [구성 요소 유형 사용 및 생성](twinmaker-component-types.md)을(를) 참조하십시오.

다음 예제는 서비스 역할에 Lambda 함수를 사용할 수 있는 권한을 부여합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucket*",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
          "arn:aws:s3:::amzn-s3-demo-bucket",
          "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ]
    },
    {
        "Action": [
            "lambda:invokeFunction"
        ],
        "Resource": [
        "arn:aws:lambda:us-east-1:111122223333:function:example-function"
        ],
        "Effect": "Allow"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::*/DO_NOT_DELETE_WORKSPACE_*"
      ]
    }
  ]
}
```

------

IAM 콘솔 AWS CLI, 및 IAM API를 사용하여 역할을 생성하고 정책 및 신뢰 관계를 할당하는 방법에 대한 자세한 내용은 [에 권한을 위임할 역할 생성을 참조하세요 AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).

## Athena 데이터 커넥터를 사용하도록 워크스페이스 IAM 역할을 수정합니다.
<a name="athena-tabular-data-connector-ws-IAM"></a>

[AWS IoT TwinMaker Athena 테이블 형식 데이터 커넥터를](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/athena-tabular-data-connector.html) 사용하려면 AWS IoT TwinMaker 워크스페이스 IAM 역할을 업데이트해야 합니다. 워크스페이스 IAM 역할에 다음 권한을 추가합니다.

**참고**  
이 IAM 변경은 AWS Glue 및 Amazon S3에 저장된 Athena 테이블 형식 데이터에 대해서만 작동합니다. Athena를 다른 데이터 소스와 함께 사용하려면 Athena에 대한 IAM 역할을 구성해야 합니다. [Athena의 ID 및 액세스 관리](https://docs.aws.amazon.com/athena/latest/ug/security-iam-athena.html)를 참조하십시오.

```
{
    "Effect": "Allow",
    "Action": [
        "athena:GetQueryExecution",
        "athena:GetQueryResults",
        "athena:GetTableMetadata",
        "athena:GetWorkGroup",
        "athena:StartQueryExecution",
        "athena:StopQueryExecution"
    ],
    "Resource": [
        "athena resouces arn"
    ]
},// Athena permission
{
    "Effect": "Allow",
    "Action": [
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetDatabase",
        "glue:GetDatabases"
    ],
    "Resource": [
        "glue resouces arn"
    ]
},// This is an example for accessing aws glue
{
    "Effect": "Allow",
    "Action": [
        "s3:ListBucket",
        "s3:GetObject"
    ],
    "Resource": [
        "Amazon S3 data source bucket resources arn"
    ]
}, // S3 bucket for storing the tabular data.
{
    "Effect": "Allow",
    "Action": [
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:ListMultipartUploadParts",
        "s3:AbortMultipartUpload",
        "s3:CreateBucket",
        "s3:PutObject",
        "s3:PutBucketPublicAccessBlock"
    ],
    "Resource": [
        "S3 query result bucket resources arn"
    ]
} // Storing the query results
```

 Athena IAM 구성에 대한 자세한 내용은 [Athena의 ID 및 액세스 관리](https://docs.aws.amazon.com/athena/latest/ug/security-iam-athena.html)를 참조하십시오.