AWS IoT 1-Click
開発者ガイド

AWS IoT 1-Click に対する認証とアクセスコントロール

AWS IoT 1-Click API へのアクセスには、認証情報が必要です。これらの認証情報には、AWS IoT 1-Click プロジェクトやデバイスなど、AWS リソースにアクセスするための権限が必要です。次のセクションでは、AWS Identity and Access Management (IAM) および AWS IoT 1-Click を使用して、リソースへのアクセスをセキュリティで保護する方法について詳しく説明します。

すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアクセスは、アクセス権限のポリシーによって管理されます。アカウント管理者は、アクセス権限ポリシーを IAM アイデンティティ(ユーザー、グループ、ロール)にアタッチできます。一部のサービス (AWS Lambda など) では、アクセス権限ポリシーをリソースにアタッチすることもできます。アカウント管理者はアクセス権限を付与する際に、付与先のユーザー、対象のリソース、および対象のリソースに許可されるアクションを決定します。

AWS IoT 1-Click リソースおよびオペレーション

AWS IoT 1-Click での主なリソースはプロジェクトとデバイスです。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。これらのリソースには、次の表に示すとおり、一意の Amazon リソースネーム (ARN) が関連付けられています。

リソースタイプ ARN 形式
デバイス arn:aws:iot1click:region:account-id:devices/device-id
プロジェクト arn:aws:iot1click:region:account-id:projects/project-name

AWS IoT 1-Click には、AWS IoT 1-Click リソースを操作するための API が実装されています。これらは IAM におけるアクションと呼ばれます。使用可能な操作のリストについては、このトピックの最後の表を参照してください。

AWS IoT 1-Click でアイデンティティベースのポリシー (IAM ポリシー) を使用する

このトピックで取り上げる ID ベースのポリシーの例では、アカウント管理者が IAM ID (ユーザー、グループ、ロール) にアクセス権限ポリシーをアタッチし、AWS IoT 1-Click リソースに対するオペレーションを実行するアクセス権限を付与する方法を示しています。

以下に示しているのは、アクセス権限ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot1click:CreateProject" ], "Resource": "*" } ] }

ポリシーには 1 つのステートメントがあり、アプリケーションの Amazon リソースネーム (ARN) を使用してリソースに対し 1 つの AWS IoT 1-Click アクション (iot1click:CreateProject) のアクセス権限を付与します。この場合の ARN はワイルドカード文字 (*) を指定して、どのリソースにもアクセス権限を付与することを示します。

AWS IoT 1-Click の API オペレーションとそれらが適用されるリソースについては、「AWS IoT 1-Click API アクセス権限: アクション、アクセス権限、およびリソースの参照」を参照してください。

AWS IoT 1-Click の AWS 管理 (定義済み) ポリシー

Amazon Web Services は、AWS によって作成され管理されるスタンドアロンの IAM ポリシーを提供することで、多くの一般的ユースケースに対応します。これらの AWS 管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与することで、どの権限が必要なのかをユーザーが調査する必要をなくすことができます。詳細については、IAM ユーザーガイドの「AWS 管理ポリシー」を参照してください。

アカウントのユーザーに添付可能な以下の AWS 管理ポリシーは、AWS IoT 1-Click に固有のもので、ユースケースシナリオ別にグループ化されます。

  • AWSIoT1ClickFullAccess: AWS 管理コンソールを使用して AWS IoT 1-Click リソースへのフルアクセスを許可します。付与されるアクセス権限には、デバイスとプロジェクトを管理するためのすべての AWS IoT 1-Click アクションが含まれます。

  • AWSIoT1ClickReadOnlyAccess: AWS 管理コンソールを使用して AWS IoT 1-Click リソースへの読み取り専用アクセスを許可します。このアクセス許可により、ユーザーは AWS IoT 1-Click デバイスとプロジェクトをリストしてプロジェクト設定を確認することができます。

注記

これらのアクセス権限ポリシーは、IAM コンソール (https://console.aws.amazon.com/iam/) にサインインして特定のポリシー名を検索することによって確認できます。

独自のカスタム IAM ポリシーを作成して、AWS IoT 1-Click アクションとリソースのための権限を許可することもできます。これらのカスタムポリシーは、それらのアクセス権限が必要な IAM ユーザーまたはグループにアタッチできます。

AWS IoT 1-Click API アクセス権限: アクション、アクセス権限、およびリソースの参照

AWS クラウドでアクセスコントロールをセットアップし、IAM アイデンティティ (アイデンティティベースのポリシー) にアタッチできるアクセス権限ポリシーを作成する際、以下の表をリファレンスとして使用できます。この表では、各 AWS IoT 1-Click API オペレーション、その対応するアクション (そのアクションの実行に必要なアクセス権限)、そのアクセス権限を付与できる AWS リソースを示しています。ポリシーの Action フィールドでアクションを指定し、ポリシーの Resource フィールドでリソースの値を指定します。

AWS IoT 1-Click ポリシーで AWS 全体の条件キーを使用して、条件を表現することができます。AWS 全体を対象とするすべてのキーのリストについては、IAM ユーザーガイドの「利用可能なキー」を参照してください。

注記

アクションを指定するには、API オペレーション名 (iot1click:ListProjects など) の前に iot1click: プレフィックスを使用します。

IoT 1-Click オペレーション

必要なアクセス権限 (API アクション)

リソース
ListDevices iot1click:ListDevices *
DescribeDevice iot1click:DescribeDevice arn:aws:iot1click:region:account-id:devices/device-id
GetDeviceMethods iot1click:GetDeviceMethods arn:aws:iot1click:region:account-id:devices/device-id
UpdateDeviceState iot1click:UpdateDeviceState arn:aws:iot1click:region:account-id:devices/device-id
InvokeDeviceMethod iot1click:InvokeDeviceMethod arn:aws:iot1click:region:account-id:devices/device-id
ListDeviceEvents iot1click:ListDeviceEvents arn:aws:iot1click:region:account-id:devices/device-id
InitializeDeviceClaim iot1click:InitializeDeviceClaim arn:aws:iot1click:region:account-id:devices/device-id
FinalizeDeviceClaim iot1click:FinalizeDeviceClaim arn:aws:iot1click:region:account-id:devices/device-id
UnclaimDevice iot1click:UnclaimDevice arn:aws:iot1click:region:account-id:devices/device-id
ClaimDeviceByClaimCode iot1click:ClaimDeviceByClaimCode *
CreateProject iot1click:CreateProject arn:aws:iot1click:region:account-id:projects/project-name
UpdateProject iot1click:UpdateProject arn:aws:iot1click:region:account-id:projects/project-name
DescribeProject iot1click:DescribeProject arn:aws:iot1click:region:account-id:projects/project-name
ListProjects iot1click:ListProjects *
DeleteProject iot1click:DeleteProject arn:aws:iot1click:region:account-id:projects/project-name
CreatePlacement iot1click:CreatePlacement arn:aws:iot1click:region:account-id:projects/project-name
UpdatePlacement iot1click:UpdatePlacement arn:aws:iot1click:region:account-id:projects/project-name
DescribePlacement iot1click:DescribePlacement arn:aws:iot1click:region:account-id:projects/project-name
ListPlacements iot1click:ListPlacements arn:aws:iot1click:region:account-id:projects/project-name
DeletePlacement iot1click:DeletePlacement arn:aws:iot1click:region:account-id:projects/project-name
AssociateDeviceWithPlacement iot1click:AssociateDeviceWithPlacement arn:aws:iot1click:region:account-id:projects/project-name
DissacociateDeviceFromPlacement iot1click:DissacociateDeviceFromPlacement arn:aws:iot1click:region:account-id:projects/project-name
GetDevicesInPlacement iot1click:GetDevicesInPlacement arn:aws:iot1click:region:account-id:projects/project-name