

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

# AWS IoT TwinMaker Grafana 대시보드 통합
<a name="grafana-integration"></a>

AWS IoT TwinMaker 는 애플리케이션 플러그인을 통한 Grafana 통합을 지원합니다. Grafana 버전 10.4.0 이상 버전을 사용하여 디지털 트윈 애플리케이션과 상호 작용합니다. AWS IoT TwinMaker 플러그인은 디지털 트윈 데이터에 연결하기 위한 사용자 지정 패널, 대시보드 템플릿 및 데이터 소스를 제공합니다.

Grafana 온보딩 및 대시보드 권한 설정 방법에 관한 자세한 내용은 다음 주제를 참조하십시오.

**Topics**
+ [Grafana 장면 뷰어를 위한 CORS 구성](cors-configuration-grafana.md)
+ [Grafana 환경 설정](grafana-environment.md)
+ [대시보드 IAM 역할 생성](dashboard-IAM-role.md)
+ [AWS IoT TwinMaker 비디오 플레이어 정책 생성](tm-video-policy.md)

**참고**  
Grafana 사용자 인터페이스가 버킷에서 리소스를 로드할 수 있도록 Amazon S3 버킷의 CORS(원본 간 리소스 공유) 구성을 수정해야 합니다. 해당 지침은 [Grafana 장면 뷰어를 위한 CORS 구성](cors-configuration-grafana.md)을(를) 참조하십시오.

 AWS IoT TwinMaker Grafana 플러그인에 대한 자세한 내용은 [AWS IoT TwinMaker 앱](https://grafana.com/grafana/plugins/grafana-iot-twinmaker-app/) 설명서를 참조하세요.

Grafana 플러그인의 주요 구성 요소에 대한 자세한 내용은 다음을 참조하십시오.
+ [AWS IoT TwinMaker 데이터 원본](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/datasource/README.md)
+ [대시보드 템플릿](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/datasource/dashboards/README.md)
+ [장면 뷰어 패널](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/scene-viewer/README.md)
+ [동영상 플레이어 패널](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/video-player/README.md)

# Grafana 장면 뷰어를 위한 CORS 구성
<a name="cors-configuration-grafana"></a>

 AWS IoT TwinMaker Grafana 플러그인에는 CORS(크로스 오리진 리소스 공유) 구성이 필요합니다. 이를 통해 Grafana 사용자 인터페이스가 Amazon S3 버킷에서 리소스를 로드할 수 있습니다. CORS 구성이 없으면 Grafana 도메인이 Amazon S3 버킷의 리소스에 액세스할 수 없으므로 장면 뷰어에 “네트워크 장애로 인한 3D 장면 로드 실패”라는 오류 메시지가 표시됩니다.

CORS로 Amazon S3 버킷을 구성하려면 다음 단계를 따르십시오.

1. IAM 콘솔에 로그인한 다음 [Amazon S3 콘솔](https://console.aws.amazon.com/s3/)을 엽니다.

1. **버킷** 목록에서 AWS IoT TwinMaker 워크스페이스의 리소스 버킷으로 사용하는 버킷의 이름을 선택합니다.

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

1. **CORS(원본 간 리소스 공유)** 섹션에서 **편집**을 선택합니다.

1.  **CORS 구성 편집기** 텍스트 상자에서 Grafana 작업 영역 도메인 `GRAFANA-WORKSPACE-DOMAIN`을(를) 사용자 도메인으로 대체하여 다음 JSON CORS 구성을 입력하거나 복사하여 붙여넣습니다.
**참고**  
별표 `*` 문자는 `"AllowedOrigins":` JSON 요소의 시작 부분에 유지해야 합니다.

   ```
           [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "GET",
               "PUT",
               "POST",
               "DELETE",
               "HEAD"
           ],
           "AllowedOrigins": [
               "*GRAFANA-WORKSPACE-DOMAIN"
           ],
           "ExposeHeaders": [
               "ETag"
           ]
       }
   ]
   ```

1. **변경 사항 저장**을 선택하여 CORS 구성을 완료합니다.

Amazon S3 버킷을 사용하는 CORS에 대한 자세한 내용은 [CORS(Cross-Origin Resource Sharing) 사용을](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) 참조하세요.

# Grafana 환경 설정
<a name="grafana-environment"></a>

Amazon Managed Grafana를 완전 관리형 서비스에 사용하거나, 직접 관리하는 Grafana 환경을 설정할 수 있습니다. Amazon Managed Grafana를 사용하면 필요에 따라 오픈 소스 Grafana를 신속하게 배포, 운영 및 확장할 수 있습니다. 또는 자체 인프라를 설정하여 Grafana 서버를 관리할 수 있습니다.

Grafana 환경 옵션에 대한 자세한 내용은 다음 주제를 참조하십시오.
+ [Amazon Managed Grafana](amazon-managed-grafana.md)
+ [자체 관리형 Grafana](self-managed-grafana.md)

# Amazon Managed Grafana
<a name="amazon-managed-grafana"></a>

Amazon Managed Grafana는 AWS IoT TwinMaker 플러그인을 제공하므로 Grafana AWS IoT TwinMaker 와 빠르게 통합할 수 있습니다. Amazon Managed Grafana는 사용자를 대신하여 Grafana 서버를 관리하므로 사용자는 하드웨어 또는 기타 Grafana 인프라를 구축, 패키징 또는 배포하지 않고도 데이터를 시각화할 수 있습니다. Amazon Managed Grafana에 대한 자세한 내용은 [Amazon Managed Grafana란 무엇입니까?](https://docs.aws.amazon.com//grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)를 참조하십시오.

**참고**  
Amazon Managed Grafana는 현재 AWS IoT TwinMaker Grafana 플러그인 버전 **1.3.1**을 지원합니다.

## Amazon Managed Grafana 사전 요구 사항
<a name="amazon-managed-grafana-prereqs"></a>

Amazon Managed Grafana 대시보드 AWS IoT TwinMaker 에서를 사용하려면 먼저 다음 사전 조건을 완료하세요.
+  AWS IoT TwinMaker 워크스페이스를 생성합니다. 워크스페이스 생성에 대한 자세한 내용은 [시작하기를 AWS IoT TwinMaker](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/twinmaker-gs.html) 참조하세요.

**참고**  
 AWS 관리 콘솔에서 Amazon Managed Grafana 워크스페이스를 처음 생성하면 AWS IoT TwinMaker 이 나열되지 않습니다. 하지만 해당 플러그인은 이미 모든 작업 영역에 설치되어 있습니다. 오픈 소스 Grafana 플러그인 목록에서 AWS IoT TwinMaker 플러그인을 찾을 수 있습니다. 데이터소스 페이지에서 **데이터소스 추가**를 선택하여 AWS IoT TwinMaker 데이터소스를 찾을 수 있습니다.

Amazon Managed Grafana 작업 영역을 생성하면 Grafana 인스턴스에 대한 권한을 관리하기 위해 IAM 역할이 자동으로 생성됩니다. 이를 **작업 영역 IAM 역할**이라고 합니다. Grafana의 모든 AWS IoT TwinMaker 데이터소스를 구성하는 데 사용할 인증 공급자 옵션입니다. Amazon Managed Grafana는 AWS IoT TwinMaker에 대한 권한 자동 추가를 지원하지 않으므로 이러한 권한을 수동으로 설정해야 합니다. 수동 권한 설정에 대한 자세한 내용은 [대시보드 IAM 역할 생성](dashboard-IAM-role.md)를 참조하십시오.

# 자체 관리형 Grafana
<a name="self-managed-grafana"></a>

Grafana를 실행하기 위해 자체 인프라를 호스팅하도록 선택할 수 있습니다. [컴퓨터에서 Grafana를 로컬로 실행하는 방법에 대한 자세한 내용은 Grafana 설치를 참조하십시오.](https://grafana.com/docs/grafana/latest/installation/) AWS IoT TwinMaker 플러그인은 공개 Grafana 카탈로그에서 사용할 수 있습니다. Grafana 환경에 이 플러그인을 설치하는 방법에 대한 자세한 내용은 [AWS IoT TwinMaker 앱](https://grafana.com/grafana/plugins/grafana-iot-twinmaker-app/?tab=installation)을 참조하십시오.

Grafana를 로컬에서 실행하면 대시보드를 쉽게 공유하거나 여러 사용자에게 액세스를 제공할 수 없습니다. 로컬 Grafana를 사용하여 대시보드를 공유하는 방법에 대한 스크립트로 작성된 빠른 시작 가이드는 [AWS IoT TwinMaker 샘플 리포지토리](https://github.com/aws-samples/aws-iot-twinmaker-samples)를 참조하십시오. 이 리소스는 Cloud9에서 Grafana 환경을 호스팅하고 퍼블릭 엔드포인트에서 Amazon EC2를 호스팅하는 과정을 안내합니다.

TwinMaker 데이터 소스를 구성하는 데 사용할 인증 공급자를 결정해야 합니다. 기본 자격 증명 체인을 기반으로 환경의 자격 증명을 구성합니다([기본 자격 증명 공급자 체인 사용](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default) 참조). 기본 자격 증명은 모든 사용자 또는 역할의 영구 자격 증명일 수 있습니다. 예를 들어 Amazon EC2에서 Grafana를 실행하는 경우 기본 자격 증명 체인은 인증 공급자가 되는 [Amazon EC2 실행 역할](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)에 액세스할 수 있습니다. [대시보드 IAM 역할 생성](dashboard-IAM-role.md) 단계에서는 인증 제공자의 IAM Amazon 리소스 이름(ARN)이 필요합니다.

# 대시보드 IAM 역할 생성
<a name="dashboard-IAM-role"></a>

를 사용하면 Grafana 대시보드에서 데이터 액세스를 제어할 AWS IoT TwinMaker수 있습니다. Grafana 대시보드 사용자는 데이터를 보고, 경우에 따라 데이터를 쓰기 위해 다양한 권한 범위를 가져야 합니다. 예를 들어 알람 운영자에게는 동영상 보기 권한이 없는 반면 관리자는 모든 리소스에 대한 권한이 있을 수 있습니다. Grafana는 자격 증명과 IAM 역할이 제공되는 데이터 소스를 통해 권한을 정의합니다. AWS IoT TwinMaker 데이터 소스는 해당 역할에 대한 권한이 있는 AWS 자격 증명을 가져옵니다. IAM 역할이 제공되지 않은 경우 Grafana는 자격 증명의 범위를 사용하며, 이는 축소할 수 없습니다 AWS IoT TwinMaker.

Grafana에서 AWS IoT TwinMaker 대시보드를 사용하려면 IAM 역할을 생성하고 정책을 연결합니다. 다음 템플릿을 사용하여 이러한 정책을 생성할 수 있습니다.

## IAM 정책 생성
<a name="IAM-policy"></a>

IAM 콘솔에서 `YourWorkspaceIdDashboardPolicy`이라는 IAM 정책을 생성합니다. 이 정책은 작업 영역에 Amazon S3 버킷 및 AWS IoT TwinMaker 리소스에 대한 액세스 권한을 부여합니다. 구성 요소에 [AWS IoT Greengrass 대해 구성된 Kinesis Video Streams 및 자산에 대한 권한이 필요한 Amazon Kinesis Video Streams용 Edge Connector](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/video-integration.html)를 사용하기로 결정할 수도 있습니다. AWS IoT SiteWise 사용 사례에 맞게 다음 정책 템플릿 중 하나를 선택합니다.

**1: 동영상 권한 정책 없음**  
Grafana [Video Player 패널](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/video-player/README.md)을 사용하지 않으려면 다음 템플릿을 사용하여 정책을 생성하십시오.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iottwinmaker:Get*",
                "iottwinmaker:List*"
            ],
            "Resource": [
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iottwinmaker:ListWorkspaces",
            "Resource": "*"
        }
    ]
}
```
Amazon S3 버킷이 각 작업 영역에 대해 생성됩니다. 여기에는 대시보드에서 볼 수 있는 3D 모델 및 장면이 포함되어 있습니다. [SceneViewer](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/scene-viewer/README.md) 패널은이 버킷에서 항목을 로드합니다.

**2. 동영상 권한 정책의 범위 축소**  
Grafana의 Video Player 패널에서 액세스를 제한하려면 Amazon Kinesis Video Streams용 AWS IoT Greengrass Edge Connector 리소스를 태그별로 그룹화합니다. 동영상 리소스 권한 범위 축소에 대한 자세한 내용은 [AWS IoT TwinMaker 비디오 플레이어 정책 생성](tm-video-policy.md)을(를) 참조하십시오.

**3. 모든 동영상 권한**  
동영상을 그룹화하고 싶지 않은 경우 Grafana Video Player에서 모든 동영상에 액세스할 수 있도록 설정할 수 있습니다. Grafana 워크스페이스에 액세스할 수 있는 모든 사용자는 계정의 모든 스트림에 대해 비디오를 재생할 수 있으며 모든 AWS IoT SiteWise 자산에 대한 읽기 전용 액세스 권한을 가질 수 있습니다. 여기에는 향후 생성되는 모든 리소스가 포함됩니다.  
다음 템플릿을 사용하여 정책을 생성합니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucketName/*",
                "arn:aws:s3:::bucketName"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iottwinmaker:Get*",
                "iottwinmaker:List*"
            ],
            "Resource": [
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iottwinmaker:ListWorkspaces",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:GetDataEndpoint",
                "kinesisvideo:GetHLSStreamingSessionURL"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:GetAssetPropertyValue",
                "iotsitewise:GetInterpolatedAssetPropertyValues"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:BatchPutAssetPropertyValue"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
                }
            }
        }
    ]
}
```
이 샘플 정책은 다음 권한을 제공합니다.  
+ 장면을 로드하기 위한 S3 버킷에 대한 읽기 전용 액세스.
+ 워크스페이스의 모든 엔터티 및 구성 요소에 AWS IoT TwinMaker 대한에 대한 읽기 전용 액세스 권한입니다.
+ 계정의 모든 Kinesis Video Streams 동영상을 스트리밍할 수 있는 읽기 전용 액세스.
+ 계정에 있는 모든 AWS IoT SiteWise 자산의 속성 값 기록에 대한 읽기 전용 액세스 권한입니다.
+ 키`EdgeConnectorForKVS`와 값으로 태그가 지정된 AWS IoT SiteWise 자산의 속성으로 데이터를 수집합니다`workspaceId`.

## 엣지에서 카메라 AWS IoT SiteWise 자산 요청 비디오 업로드에 태그 지정
<a name="tagging-camera-assets"></a>

Grafana의 동영상 플레이어를 사용하면 사용자는 엣지 캐시에서 Kinesis Video Streams로 동영상을 업로드하도록 수동으로 요청할 수 있습니다. Amazon Kinesis Video Streams용 AWS IoT Greengrass Edge Connector와 연결되어 있고 키로 태그가 지정된 모든 AWS IoT SiteWise 자산에 대해이 기능을 켤 수 있습니다`EdgeConnectorForKVS`.

태그 값은 다음 `. : + = @ _ / -` 문자로 구분된 WorkspaceID 목록일 수 있습니다. 예를 들어 워크 AWS IoT TwinMaker 스페이스 전체에서 Amazon Kinesis Video Streams용 AWS IoT Greengrass 엣지 커넥터와 연결된 AWS IoT SiteWise 자산을 사용하려면 다음 패턴을 따르는 태그를 사용할 수 있습니다`WorkspaceA/WorkspaceB/WorkspaceC`. Grafana 플러그인은 the AWS IoT TwinMaker workspaceId가 AWS IoT SiteWise 자산 데이터 수집을 그룹화하는 데 사용되도록 강제합니다.

## 대시보드 정책에 더 많은 권한을 추가
<a name="adding-more-permissions"></a>

 AWS IoT TwinMaker Grafana 플러그인은 인증 공급자를 사용하여 생성한 대시보드 역할에서 AssumeRole을 호출합니다. 내부적으로 플러그인은 AssumeRole 호출에서 세션 정책을 사용하여 액세스할 수 있는 가장 높은 권한 범위를 제한합니다. 세션 정책에 대한 자세한 정보는 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하십시오.

이는 AWS IoT TwinMaker 작업 영역의 대시보드 역할에 적용할 수 있는 최대 허용 정책입니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucketName/*",
                "arn:aws:s3:::bucketName"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iottwinmaker:Get*",
                "iottwinmaker:List*"
            ],
            "Resource": [
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iottwinmaker:ListWorkspaces",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:GetDataEndpoint",
                "kinesisvideo:GetHLSStreamingSessionURL"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:GetAssetPropertyValue",
                "iotsitewise:GetInterpolatedAssetPropertyValues"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:BatchPutAssetPropertyValue"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
                }
            }
        }
    ]
}
```

------

더 `Allow` 많은 권한을 가진 문을 추가하면 AWS IoT TwinMaker 플러그인에서 작동하지 않습니다. 이는 플러그인이 필요한 최소한의 권한을 사용하도록 하기 위한 것입니다.

하지만 권한 범위를 더 좁힐 수 있습니다. 자세한 내용은 [AWS IoT TwinMaker 비디오 플레이어 정책 생성](tm-video-policy.md)을(를) 참조하십시오.

## Grafana 대시보드 IAM 역할 생성
<a name="grafana-IAM-role"></a>

IAM 콘솔에서 `YourWorkspaceIdDashboardRole`이라는 IAM 역할을 생성합니다. 역할에 `YourWorkspaceIdDashboardPolicy`을(를) 연결하십시오.

대시보드 역할의 신뢰 정책을 편집하려면 Grafana 인증 공급자가 대시보드 역할에 대해 `AssumeRole`을 직접적으로 호출할 수 있는 권한을 부여해야 합니다. 다음 템플릿으로 신뢰 정책을 업데이트하십시오.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "ARN of Grafana authentication provider" 
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Grafana 환경 생성 및 인증 제공자 찾기에 대한 자세한 내용은 [Grafana 환경 설정](grafana-environment.md)을(를) 참조하십시오.

# AWS IoT TwinMaker 비디오 플레이어 정책 생성
<a name="tm-video-policy"></a>

다음은 Grafana의 AWS IoT TwinMaker 플러그인에 필요한 모든 동영상 권한이 포함된 정책 템플릿입니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iottwinmaker:Get*",
                "iottwinmaker:List*"
            ],
            "Resource": [
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iottwinmaker:ListWorkspaces",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:GetDataEndpoint",
                "kinesisvideo:GetHLSStreamingSessionURL"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:GetAssetPropertyValue",
                "iotsitewise:GetInterpolatedAssetPropertyValues"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:BatchPutAssetPropertyValue"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
                }
            }
        }
    ]
}
```

------

전체 정책에 대한 자세한 내용은 [IAM 정책 생성](dashboard-IAM-role.md#IAM-policy) 항목의 **모든 동영상 권한** 정책 템플릿을 참조하십시오.

## 리소스에 대한 액세스 범위 좁히기
<a name="scope-down-access"></a>

Grafana의 동영상 플레이어 패널은 Kinesis Video Streams 및 IoT SiteWise를 직접 호출하여 완벽한 동영상 재생 환경을 제공합니다. AWS IoT TwinMaker 워크스페이스와 연결되지 않은 리소스에 대한 무단 액세스를 방지하려면 워크스페이스 대시보드 역할에 대한 IAM 정책에 조건을 추가합니다.

## GET 권한 범위 좁히기
<a name="scope-down-GET-permissions"></a>

리소스에 태그를 지정하여 Amazon Kinesis Video Streams 및 AWS IoT SiteWise 자산의 액세스 범위를 좁힐 수 있습니다. 비디오 업로드 요청 기능을 활성화하기 위해 workspaceId를 AWS IoT TwinMaker 기반으로 AWS IoT SiteWise 카메라 자산에 이미 태그를 지정했을 수 있습니다. [엣지 주제에서 비디오 업로드를](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/dashboard-IAM-role.html#tagging-camera-assets) 참조하세요. 동일한 태그 키-값 페어를 사용하여 AWS IoT SiteWise 자산에 대한 GET 액세스를 제한하고 Kinesis Video Streams에 동일한 방식으로 태그를 지정할 수도 있습니다.

그런 다음 `YourWorkspaceIdDashboardPolicy`의 kinesisvideo 및 Iotsitewise 명령문에 이 조건을 추가할 수 있습니다.

```
"Condition": {
  "StringLike": {
    "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
  } 
}
```

### 실제 사용 사례: 카메라 그룹화
<a name="use-cases"></a>

이 시나리오에서는 공장에서 쿠키를 굽는 과정을 모니터링하는 다양한 카메라가 있습니다. 쿠키 반죽은 반죽실에서 만들고, 반죽은 냉동실에서 얼리고, 쿠키는 베이킹실에서 구워냅니다. 각 방에는 카메라가 설치되어 있으며 서로 다른 작업자 팀이 각 프로세스를 개별적으로 모니터링합니다. 각 운영자 그룹에 해당 룸에 대한 권한을 부여하고자 합니다. 쿠키 공장을 위한 디지털 트윈을 구축할 때는 단일 워크스페이스를 사용하지만 카메라 사용 권한은 공간별로 범위를 지정해야 합니다.

groupingId를 기반으로 카메라 그룹에 태그를 지정하여 이러한 권한 분리를 달성할 수 있습니다. 이 시나리오에서 groupingId는 BatterRoom(반죽실), FreezerRoom(냉동실), BakingRoom(베이킹실)입니다. 각 방의 카메라는 Kinesis Video Streams에 연결되어 있으며 키=`EdgeConnectorForKVS`, 값=`BatterRoom` 태그가 있어야 합니다. 이 값에는 다음 `. : + = @ _ / -` 문자로 구분된 그룹 목록일 수 있습니다.

`YourWorkspaceIdDashboardPolicy`을(를) 수정하려면 다음 정책 설명을 사용하십시오.

```
...,
{
  "Effect": "Allow",
  "Action": [
    "kinesisvideo:GetDataEndpoint",
    "kinesisvideo:GetHLSStreamingSessionURL"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*groupingId*"
    } 
  }
},
{
  "Effect": "Allow",
  "Action": [
    "iotsitewise:GetAssetPropertyValue",
    "iotsitewise:GetInterpolatedAssetPropertyValues"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*groupingId*"
    } 
  }
},
...
```

이러한 문은 스트리밍 비디오 재생 및 AWS IoT SiteWise 속성 기록 액세스를 그룹의 특정 리소스로 제한합니다. 사용 사례에 따라 `groupingId`이(가) 정의됩니다. 이 시나리오에서는 roomId가 됩니다.

## Scope down AWS IoT SiteWise BatchPutAssetPropertyValue 권한
<a name="scope-down-BatchPutAssetPropertyValue"></a>

이 권한을 제공하면 [동영상 플레이어에서 동영상 업로드 요청 기능](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/dashboard-IAM-role.html#tagging-camera-assets)이 활성화됩니다. 동영상을 업로드할 때, 시간 범위를 지정하고 Grafana 대시보드 패널에서 **제출**을 선택하여 요청을 제출할 수 있습니다.

iotsitewise:BatchPutAssetPropertyValue 권한을 부여하려면 기본 정책을 사용하십시오.

```
...,
{
  "Effect": "Allow",
  "Action": [
    "iotsitewise:BatchPutAssetPropertyValue"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
    } 
  }
},
...
```

사용자는이 정책을 사용하여 AWS IoT SiteWise 카메라 자산의 모든 속성에 대해 BatchPutAssetPropertyValue를 호출할 수 있습니다. 명령문의 조건에 특정 propertyId를 지정하여 권한 부여를 제한할 수 있습니다.

```
{
  ...
  "Condition": {
    "StringEquals": {
      "iotsitewise:propertyId": "propertyId"
    } 
  }
  ...
}
```

Grafana의 동영상 플레이어 패널은 데이터를 VideoUploadRequest라는 측정 속성으로 수집하여 엣지 캐시에서 Kinesis Video Streams로 동영상 업로드를 시작합니다. AWS IoT SiteWise 콘솔에서이 속성의 propertyId를 찾습니다. `YourWorkspaceIdDashboardPolicy`을(를) 수정하려면 다음 정책 설명을 사용하십시오.

```
...,
{
  "Effect": "Allow",
  "Action": [
    "iotsitewise:BatchPutAssetPropertyValue"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
    },
    "StringEquals": {
      "iotsitewise:propertyId": "VideoUploadRequestPropertyId"
    }
  }
},
...
```

이 정책은 태그가 지정된 AWS IoT SiteWise 카메라 자산의 특정 속성에 대한 데이터 수집을 제한합니다. 자세한 내용은 [AWS IoT SiteWise 가 IAM과 함께 작동하는 방법](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html)을 참조하십시오.