2. AWSの設定¶
本章ではハンズオンに必要なAWS側の設定を行います。今回利用するリージョ ンは 東京リージョン となりますので、ログイン後東京リージョンを必ず選択し てください。
2.1. Cognitoの設定(Identity Poolの作成)¶
ブラウザからAWSのリソースを利用するための認証、認可を行なうために Amazon Cognitoを利用します。
マネージメントコンソールから [Cognito] を選択します。
Cognitoの画面から [Create new identity pool] をクリックします。
“Create new identity pool”の画面で、”Identity pool name”に JAWSDAYS2016 、”Enable access to unauth...”にチェックを入れて [Create Pool] をクリックしてください。
Cognitoの認証後に割当てられるIAMロールを設定します。”Your Cognito Identities...”で [Allow] をクリックしてください。
“Getting Started”の画面で”Platform”のプルダウンから JavaScript を 選択してクリックします。
“Get AWS Credentials”中の IdentityPoolId の “ap-northeast-1.xxx”の文字列をメモ帳などに保存します。
2.2. IAM(Identity and Access Management)ロールの作成¶
CognitoのIdentity Pool作成時に割り当てたUnauthのロールにポリシーを設定 します。
また、AWS IoTのShadowをLambdaで利用するするため、Lambda関数に割り当て るためのIAMロールを事前に作成します。
2.2.1. Cognitoのロール設定¶
マネージメントコンソールから Identity and Access Management をクリッ クします。
左メニューから Role をクリックします。
ロールの一覧から Cognito_jawsdays2016Unauth_Role を選択し、クリッ クします。
“Managed Policies”の [Attach Policy] をクリックし、 AWSIoTDataAccess のポリシーを割当てます。
“Inline Policies”の Create Role Policy をクリックします。”Policy Generator”の Select をクリックします。
“Edit Permission”の画面で以下の値を設定します。
- Effect: Allow
- AWS Service: AWS Lambda
- Actions: InvokeFunction
- Amazon Resource name: *(アスタリスク)
入力が完了したら Add Statement をクリックします。
画面の下に追加したポリシーが表示されます。 Next Step をクリックします。
“Review Policy”で Apply Policy をクリックします。
2.2.2. Lambda用のRole作成¶
AWS IoT ShadowにUpdateコマンドを発行するLambdaを利用しますが、その Lambda関数に割り当てるIAMロールを作成します。
マネージメントコンソールから Identity and Access Management をクリックします。
左メニューから Role をクリックします。
[Create New Role] をクリックします。
“Set Role Name”に lambda-updateshadow-role と入力し、[NextStep] をクリックします。
“Select Role Type”でLambdaの欄の [Select] をクリックします。
“Attach Policy”でビルトインポリシーの一覧から AWSIoTDataAccess を選択し、 [Next Step] をクリックします。
[Create Role] をクリックします。
2.3. Lambda関数の作成¶
AWS IoTのShadowを実行するためのLambda関数を作成します。
マネージメントコンソールから Lambda を選択します。
[Create a Lambda function] をクリックします。
画面右下の [Skip] をクリックします。
“Configuration function”の欄に、それぞれ以下を入力します。
- Name: UpdateShadowForMaBeee
- Description: 任意
- Runtime: node.js(デフォルトのまま)
以下のリンクにあるソースコードをテキストコピーして、 Lambda Function Code に貼り付けま す。 https://github.com/aquaviter/jawsdays2016-handson-int/blob/master/app/invoked-lambda.js
“Lambda function handler and role”の”Role”から先ほど作成したIAMロール lambda-updateshadow-role を選択し、[Next] をクリックします。
“Review”で [Create function] をクリックします。
2.4. AWS IoTの設定¶
本ハンズオンで利用するAWS IoTの各種設定を行います。
2.4.1. 証明書の作成¶
BX1で利用する証明書を作成します。
マネージメントコンソールから AWS IoT を選択します。
[Create a rerouce] をクリックします。
[Create a certificate] をクリックします。
[1-Click certificate create] をクリックします。
以下の3つのリンクからファイルをローカルPCにダウンロードします。
リソース一覧から作成した証明書を選択し、右上の [Action] から [Activate] を選択し、クリックします。
証明書が”Active”状態になったことを確認します。
2.4.2. ポリシーの作成¶
[Create a policy] をクリックします。
“Create a policy”の画面で以下の値を入力し、[Add statement] をクリッ クします。
- Name: allow-all-policy
- Action: iot:*
- Resource: *(アスタリスク)
- Allow/Deny: Allowにチェックを入れる
“Statements”にレコードが追加されたのを確認し、 [Create] をクリック します。
2.4.4. 証明書のアクティベートとポリシー/デバイスのアタッチ¶
リソース一覧から作成した証明書を選択し、右上の [Action] から [Activate] を選択し、クリックします。
証明書が”Active”状態になったことを確認します。 [Actions] から [Attach a policy] を選択し、クリックします。
“Confirm”画面で”Policy name”に先ほど作成した allow-all-policy を入力し、[Attach] をクリックします。
[Actions] から [Attach a thing] を選択し、クリックします。
“Confirm”画面で”Thing name”に先ほど作成した bx1 を入力し、 [Attach] をクリックします。
以上でAWS IoT側の設定は完了です。