

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

# データプレーンで AWS IoT ジョブを安全に使用することをデバイスに許可する
<a name="iot-data-plane-jobs"></a>

デバイスがデータプレーン上の AWS IoT ジョブと安全にやり取りすることを許可するには、 AWS IoT Core policies. AWS IoT Core policies for jobs をポリシーステートメントを含む JSON ドキュメントとして使用する必要があります。これらのポリシーでは*効果*、*アクション*、および*リソース*の各要素を使用し、IAM ポリシーと同様の規則に従います。要素の詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_elements.html)」を参照してください。

ポリシーは MQTT プロトコルと HTTPS プロトコルの両方で使用でき、デバイスを認証するには TCP または TLS 相互認証を使用する必要があります。以下に、さまざまな通信プロトコルでこれらのポリシーを使用する方法を示します。

**警告**  
IAM ポリシーや ポリシーなど`"Action": ["iot:*"]`では、ワイルドカードアクセス許可を使用しないことをお勧めします AWS IoT Core 。ワイルドカードアクセス許可の使用は、セキュリティ上のベストプラクティスとして推奨されません。詳細については、「[アクセス許可が過度に寛容なAWS IoT ポリシー](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-iot-policy-permissive.html)」を参照してください。

## AWS IoT Core MQTT プロトコルの ポリシー
<a name="iot-jobs-data-mqtt"></a>

AWS IoT Core MQTT プロトコルの ポリシーは、ジョブデバイスの MQTT API アクションを使用するアクセス許可を付与します。MQTT API オペレーションは、ジョブコマンド用に予約されている MQTT トピックを操作するために使用されます。これらの API オペレーションの詳細については、「[ジョブデバイス MQTT API オペレーション](jobs-mqtt-api.md)」を参照してください。

MQTT ポリシーは、`iot:Connect`、`iot:Publish`、`iot:Subscribe`、`iot:Receieve` などのポリシーアクションを使用して、ジョブトピックと連携します。これらのポリシーにより、メッセージブローカーへの接続、ジョブズ MQTT トピックのサブスクライブ、デバイスとクラウド間の MQTT メッセージの送受信を行うことができます。これらのアクションの詳細については、「[AWS IoT Core ポリシーアクション](iot-policy-actions.md)」を参照してください。

 AWS IoT ジョブのトピックについては、「」を参照してください[ジョブのトピック](reserved-topics.md#reserved-topics-job)。

### 基本的な MQTT ポリシーの例
<a name="iot-jobs-mqtt-example"></a>

次の例は、`iot:Publish` と `iot:Subscribe` を使用して、ジョブおよびジョブ実行を発行およびサブスクライブする方法を示します。

この例では、次のように置き換えます。
+  AWS リージョンなどの の{{リージョン}}`us-east-1`。
+ {{account-id}} は、 などの AWS アカウント 番号を使用します`57EXAMPLE833`。
+ {{thing-name}} をジョブのターゲットとなる IoT のモノの名前 (例: `MyIoTThing`) に。

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish",
                "iot:Subscribe"
            ],
            "Resource": [
            "arn:aws:iot:{{us-east-1}}:{{123456789012}}:topic/$aws/events/job/*",
    "arn:aws:iot:{{us-east-1}}:{{123456789012}}:topic/$aws/events/jobExecution/*",
    "arn:aws:iot:{{us-east-1}}:{{123456789012}}:topic/$aws/things/thing-123/jobs/*"
            ]
        }
    ]
}
```

## AWS IoT Core HTTPS プロトコルの ポリシー
<a name="iot-jobs-data-http"></a>

データプレーン上のAWS IoT Core ポリシーは、TLS 認証メカニズムを備えた HTTPS プロトコルを使用して、デバイスを認可することもできます。データプレーンでは、ポリシーは `iotjobsdata:` プレフィックスを使用して、デバイスが実行できるジョブ API オペレーションを承認します。例えば、`iotjobsdata:DescribeJobExecution` ポリシーアクションは、[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html) API を使用するアクセス許可をユーザーに付与します。

**注記**  
データプレーンポリシーアクションは、`iotjobsdata:` プレフィックスを使用する必要があります。コントロールプレーンでは、アクションは `iot:` プレフィックスを使用する必要があります。コントロールプレーンとデータプレーンの両方のポリシーアクションを使用する場合の IAM ポリシーの例については、「[コントロールプレーンとデータプレーン両方の IAM ポリシーの例](iam-policy-users-jobs.md#iam-data-plane-example2)」を参照してください。

### ポリシーアクション
<a name="iot-data-plane-actions"></a>

次の表は、デバイスに API アクションの使用を許可するための AWS IoT Core ポリシーアクションとアクセス許可のリストを示しています。データプレーンで実行できる API オペレーションのリストについては、「[ジョブデバイス MQTT API](jobs-http-device-api.md)」を参照してください。

**注記**  
これらのジョブ実行ポリシーアクションは、HTTP TLS エンドポイントにのみ適用されます。MQTT エンドポイントを使用する場合は、以前に定義された MQTT ポリシーアクションを使用する必要があります。


**AWS IoT Core データプレーンでの ポリシーアクション**  

| ポリシーアクション | API オペレーション: | リソースタイプ | 説明 | 
| --- | --- | --- | --- | 
| iotjobsdata:DescribeJobExecution | [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html) |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-data-plane-jobs.html)  | ジョブの実行を取得するアクセス許可を表します。iotjobsdata:DescribeJobExecution アクセス許可は、ジョブの実行の取得リクエストが行われるたびに確認されます。 | 
| iotjobsdata:GetPendingJobExecutions | [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html) | thing | モノの終了のステータスではないジョブのリストを取得するアクセス権限を表します。iotjobsdata:GetPendingJobExecutions アクセス権限は、リストの取得リクエストが行われるたびに確認されます。 | 
| iotjobsdata:StartNextPendingJobExecution | [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html) | thing | モノに対して保留中の次のジョブ実行を取得および開始するアクセス権限を表します (つまり、ステータスが QUEUED のジョブ実行を IN\_PROGRESS に更新します)。iotjobsdata:StartNextPendingJobExecution アクセス許可は、保留中の次のジョブ実行を開始するリクエストが行われるたびに確認されます。 | 
| iotjobsdata:UpdateJobExecution | [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html) | thing | ジョブの実行を更新するアクセス権限を表します。iotjobsdata:UpdateJobExecution アクセス権限は、ジョブ実行の状態の更新リクエストが行われるたびに確認されます。 | 

### 基本的なポリシーの例
<a name="iot-data-plane-example"></a>

以下は、任意のリソースのデータプレーン API オペレーションでアクションを実行するアクセス許可を付与する AWS IoT Core ポリシーの例です。特定のリソース (IoT のモノなど) にポリシーのスコープを設定することができます。例では、以下を置き換えます。
+  AWS リージョン などの を使用する {{リージョン}}`us-east-1`。
+ {{account-id}} は、 などの AWS アカウント 番号を使用します`57EXAMPLE833`。
+ {{thing-name}} を IoT のモノの名前 (例: `MyIoTthing`) に。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iotjobsdata:GetPendingJobExecutions",
                "iotjobsdata:StartNextPendingJobExecution",
                "iotjobsdata:DescribeJobExecution",
                "iotjobsdata:UpdateJobExecution"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:thing/thing-123"
        }
    ]
}
```

これらのポリシーを使用する必要がある場合の一例として、IoT デバイスが AWS IoT Core ポリシーを使用して、これらの API オペレーションの 1 つにアクセスする場合 (`DescribeJobExecution` APIの次の例のような場合) が挙げられます。

```
GET /things/thingName/jobs/jobId?executionNumber=executionNumber&includeJobDocument=includeJobDocument&namespaceId=namespaceId HTTP/1.1
```