AWS IoT -> DynamoDBを設定する際に気をつけること
AWS IoTでRulesを指定してDynamoDBに値を流し込みたい。この要件を満たすためにRulesを何度か作ってみて試験的につながるかどうかを試すことはあるかと思います。その際の注意点。
生成したIAMロールは、そのDynamoDBテーブルにしかアクセス権限がないことを認識すべし
タイトルの通りです。
IAMロールを事前に作成してAWS IoTのRulesを作る人はあまりいないのでは?(Rulesに精通していれば話は別ですが。)Rulesを記述している途中で気づいて作っちゃうもの。自分がそうでした。
これです。
ここで作成するIAMユーザは、あくまでこのアクセス対象のDynamoDBにしかアクセス権限を持っていません。(当たり前っちゃ当たり前なんですが)
これに気付かずに別のタイミングで作成したDynamoDBアクセスのルールを流用し、設定後データを流し込もうとすると、エラーも出さずに「ただデータが入らない」という事態に陥ります。
IAMロールのポリシーの編集方法
そんなときは、IAM → ロール → ポリシーの編集 で以下のようにResourceを複数定義しましょう。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "dynamodb:PutItem",
"Resource": [
"arn:aws:dynamodb:ap-northeast-1:XXXXXXXXXXXX:table/sensor_result",
"arn:aws:dynamodb:ap-northeast-1:XXXXXXXXXXXX:table/sensorResult03"
]
}
}
これで複数のDynamoDBテーブルにアクセスできるようになります。
Author And Source
この問題について(AWS IoT -> DynamoDBを設定する際に気をつけること), 我々は、より多くの情報をここで見つけました https://qiita.com/kojiisd/items/ff70b80898d42b2488f6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .