セキュリティの準備 - AWS IoT Core

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

セキュリティの準備

このセクションでは、 AWS IoT Device Management Software Package Catalog の主なセキュリティ要件について説明します。

リソースベースの認証

Software Package Catalog では、リソースベースの認証を使用して、フリートのソフトウェアを更新する際のセキュリティを強化します。つまり、ソフトウェアパッケージとパッケージバージョンに対して createreaddelete、、 listアクションを実行する権限を付与する AWS Identity and Access Management (IAM) updateポリシーを作成し、 Resourcesセクションでデプロイする特定のソフトウェアパッケージとパッケージバージョンを参照する必要があります。予約済みの名前付きシャドウを更新するには、これらの権限も必要です。各エンティティに Amazon リソースネーム (ARN) を含めることで、ソフトウェアパッケージとパッケージバージョンを参照できます。

注記

パッケージバージョン API コール (、CreatePackageVersion、 などDeletePackageVersion) の権限をポリシーに付与する場合はUpdatePackageVersion、ソフトウェアパッケージとパッケージバージョン ARNs の両方をポリシーに含める必要があります。ポリシーがソフトウェアパッケージ API コール (CreatePackage、、 などDeletePackage) の権限を付与する場合はUpdatePackage、ポリシーにソフトウェアパッケージ ARN のみを含める必要があります。

ソフトウェアパッケージとパッケージバージョン ARN を次のように構成します。

  • ソフトウェアパッケージ: arn:aws:iot:<region>:<accountID>:package/<packageName>/package

  • パッケージバージョン: arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>

注記

このポリシーに含めることができる、その他の関連する権利もあります。例えば、jobthinggroupjobtemplate に ARN を含めることができます。ポリシーオプションの詳細と詳細なリストについては、AWS IoT 「ジョブによるユーザーとデバイスの保護」を参照してください。

例えば、次のような名前のソフトウェアパッケージとパッケージバージョンがあるとします。

  • AWS IoT モノ: myThing

  • パッケージ名: samplePackage

  • バージョン 1.0.0

ポリシーは以下の例のようになります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:createPackage", "iot:createPackageVersion", "iot:updatePackage", "iot:updatePackageVersion" ], "Resource": [ "arn:aws:iot:us-east-1:111122223333:package/samplePackage", "arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/1.0.0" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": "arn:aws:iot:us-east-1:111122223333:thing/myThing/$package" } ] }

AWS IoT パッケージバージョンをデプロイするためのジョブ権限

セキュリティ上の理由から、パッケージとパッケージバージョンをデプロイする権限を付与し、デプロイが許可されている特定のパッケージとパッケージバージョンに名前を付けることが重要です。そのためには、パッケージバージョンでジョブをデプロイするアクセス許可を付与する IAM ロールとポリシーを作成します。ポリシーでは、リソースとしてターゲットパッケージのバージョンを指定する必要があります。

IAM ポリシー

IAM ポリシーは、Resource セクションで指定されているパッケージとバージョンを含むジョブを作成する権限を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJob", "iot:CreateJobTemplate" ], "Resource":[ "arn:aws:iot:*:111122223333:job/<jobId>", "arn:aws:iot:*:111122223333:thing/<thingName>/$package", "arn:aws:iot:*:111122223333:thinggroup/<thingGroupName>", "arn:aws:iot:*:111122223333:jobtemplate/<jobTemplateName>", "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>" ] } ] }
注記

ソフトウェアパッケージとパッケージバージョンをアンインストールするジョブをデプロイする場合は、次のようなパッケージバージョンが である ARN を承認する必要があります$null

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

AWS IoT 予約済みの名前付きシャドウを更新するジョブ権限

ジョブが正常に完了したときにジョブがモノの予約名シャドウを更新できるようにするには、IAM ロールとポリシーを作成する必要があります。 AWS IoT コンソールでこれを行うには 2 つの方法があります。1 つ目は、コンソールでソフトウェアパッケージを作成するときです。[パッケージ管理の依存関係を有効にする] ダイアログボックスが表示されたら、既存のロールを使用するか、新しいロールを作成するかを選択できます。または、 AWS IoT コンソールで [設定] を選択し、[インデックス作成の管理] を選択し、次に [デバイスパッケージとバージョンのインデックス作成の管理] を選択します。

注記

AWS IoT ジョブが正常に完了したときに予約済みの名前付きシャドウを ジョブサービスで更新することを選択した場合、API コールは Device Shadow およびレジストリオペレーションにカウントされ、コストが発生する可能性があります。詳細については、「AWS IoT Core 料金表」を参照してください。

[ロールを作成] オプションを使用すると、生成されるロールの名前は aws-iot-role-update-shadows で始まり、次のポリシーが含まれています。

ロールのセットアップ

アクセス許可

アクセス許可ポリシーにより、モノのシャドウへのクエリと更新を行う権限が付与されます。リソース ARN の $package パラメータは、予約済みの名前付きシャドウを対象としています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:DescribeEndpoint", "Resource": "" }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow" ], "Resource": [ "arn:aws:iot:<regionCode>:111122223333:thing/<thingName>/$package" ] } ] }
信頼関係

アクセス許可ポリシーに加えて、エンティティがロールを引き継いで予約済みの名前付きシャドウを更新できるように、ロールと AWS IoT Core の信頼関係も必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ユーザーポリシーの設定

iam:PassRole アクセス許可

最後に、 UpdatePackageConfigurationAPI オペレーションを呼び出す AWS IoT Core ときに にロールを渡すアクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageConfiguration" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }

AWS IoT Amazon S3 からダウンロードするジョブのアクセス許可

ジョブドキュメントは Amazon S3 に保存されます。 AWS IoT ジョブ経由でディスパッチするときは、このファイルを参照します。ファイルをダウンロードする権限を AWS IoT Jobs に提供する必要があります (s3:GetObject)。また、Amazon S3 と AWS IoT ジョブの間に信頼関係を設定する必要があります。これらのポリシーを作成する手順については、「ジョブを管理する」の「署名付き URL」を参照してください。