

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# のサービスロールの作成と管理 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 コンソールでワークスペースを作成するときに、 で AWS IoT TwinMaker Amazon S3 バケットを作成するように選択できます。このバケットに関する情報は、次の 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)」を参照してください。