認可
承認とは、認証された ID にアクセス許可を付与するプロセスです。アクセス許可は、AWS IoT Core および IAM ポリシーを使用して AWS IoT Core に付与します。このトピックでは、AWS IoT Core ポリシーについて説明します。IAM ポリシーの詳細については、AWS IoT のためのアイデンティティおよびアクセス管理 および AWS IoT で IAM を使用する方法 を参照してください。
AWS IoT Core ポリシーは、認証済みの ID の権限を決定します。認証済みの ID は、デバイス、モバイルアプリケーション、ウェブアプリケーション、デスクトップアプリケーションで使用されます。認証済みの ID を使用して、AWS IoT Core の CLI コマンドを入力することもできます。ID が AWS IoT Core オペレーションを実行できるのは、それらのオペレーションにアクセス許可が付与されているポリシーを持つ場合のみです。
AWS IoT Core ポリシーと IAM ポリシーのいずれも、AWS IoT Core で、ID (プリンシパルとも呼ばれる) が実行できるオペレーションを管理するために使用されます。使用するポリシータイプは、AWS IoT Core で認証するために使用している ID のタイプによって異なります。
AWS IoT Core オペレーションは、2 つのグループに分けられます。
-
コントロールプレーン API では、証明書、モノ、ルールなどの作成または更新などの管理タスクを行うことができます。
-
データプレーン API では、AWS IoT Core 間でデータを送受信できます。
使用するポリシーのタイプは、コントロールプレーン API とデータプレーン API のどちらを使用しているかによって異なります。
次の表に、ID タイプ、使用しているプロトコル、認証時に使用することのできるポリシータイプを示します。
AWS IoT Core のデータプレーン API とポリシータイプ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
プロトコルと認証メカニズム | SDK | ID のタイプ | ポリシータイプ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TLS/TCP を介した MQTT、TLS 相互認証 (ポート 8883 または 443)†) | AWS IoTDevice SDK | X.509 証明書 | AWS IoT Core ポリシー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS/WebSocket を介した MQTT、AWS SigV4 認証 (ポート 443) | AWS Mobile SDK | 認証された Amazon Cognito ID | IAM と AWS IoT Core ポリシー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
認証されていない Amazon Cognito ID | IAM ポリシー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IAM、またはフェデレーテッド ID | IAM ポリシー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS、AWS 署名バージョン 4 認証 (ポート 443) | AWS CLI | Amazon Cognito、IAM、またはフェデレーテッド ID | IAM ポリシー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS、TLS 相互認証 (ポート 8443) | SDK はサポートしていません | X.509 証明書 | AWS IoT Core ポリシー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
カスタム認証を介した HTTPS (ポート 443) | AWS IoTDevice SDK | カスタムオーソライザー | カスタムオーソライザーポリシー |
AWS IoT Core コントロールプレーン API とポリシータイプ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
プロトコルと認証メカニズム | SDK | ID のタイプ | ポリシータイプ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS、AWS 署名バージョン 4 認証 (ポート 443) | AWS CLI | Amazon Cognito ID | IAM ポリシー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IAM、またはフェデレーテッド ID | IAM ポリシー |
AWS IoT Core ポリシーは、X.509 証明書、Amazon Cognito ID、またはモノのグループにアタッチされます。IAM ポリシーは、IAM ユーザー、グループ、ロールにアタッチされます。AWS IoT コンソールまたは AWS IoT Core CLI を使用して (証明書、Amazon Cognito ID、またはモノのグループ に) ポリシーをアタッチする場合、AWS IoT Core ポリシーを使用します。それ以外の場合は、IAM ポリシーを使用します。モノのグループにアタッチされた AWS IoT Core ポリシーは、そのモノのグループ内のすべてのモノに適用されます。AWS IoT Core ポリシーを有効にするには、clientId
とモノの名前が一致している必要があります。
ポリシーベースの権限付与は強力なツールになります。これにより、デバイス、ユーザー、アプリケーションが AWS IoT Core でできることを完全に制御できます。例えば、証明書を使用して AWS IoT Core に接続するデバイスがあるとします。この場合、デバイスを使用して、すべての MQTT トピックへのアクセスを許可するか、1 つのトピックにアクセスを制限できます。または、コマンドラインで CLI コマンドを入力することもできます。ポリシーを使用すれば、すべてのコマンド、またはユーザーの AWS IoT Core リソースへのアクセスを許可または拒否できます。また、AWS IoT Core リソースへのアプリケーションのアクセスを制御することもできます。
AWS IoT がポリシードキュメントをキャッシュする方法によっては、ポリシーに加えられた変更が有効になるまでに数分かかる場合があります。つまり、最近アクセス権が付与されたリソースにアクセスするには数分かかる場合があり、アクセスが取り消された後、数分間リソースにアクセスできる場合があります。
AWS のトレーニングと認定
AWS IoT Core での認証の詳細については、AWS トレーニングと認定ウェブサイトにある「Deep Dive into AWS IoT Core Authentication and Authorization