みなさま、こんにちは。Project Managerの岡本です。
この度、SORACOM FunkでAWS Lambdaの実行に必要な認証情報に、IAMロールを指定できる機能を追加いたしました。
SORACOM Funk(ファンク)とは、IoTデバイスからクラウド上の関数実行を中継するサービスです。例えば、IoTボタンを押したらAWS Lambdaで作成した関数を実行する仕組みを、簡単に構築いただけます。
これまでAWS Lambda実行時の認証情報には、IAM ユーザーを利用する方式を提供していました。これは、AWS アクセスキー
とシークレットアクセスキー
をAWS上で発行してSORACOMに登録いただく方式で、ユーザーやキーをお客様が管理する必要があり、運用負荷がかかっておりました。
今回新たに対応したのが、IAM ロールを利用する方式です。AWS上でIAMロール
を作成してSORACOMに登録いただく方式で、お客様が管理する情報が減るメリットが有り、また、AWSからもベストプラクティスとして紹介されています。
今後もIAMユーザーを利用する方式は利用いただけますが、IAMロールを利用する方式を強く推奨いたします。既存のSORACOM Funkに設定済みの認証情報も、IAMロールを利用した方式へ簡単に切り替えていただけますので、併せて紹介いたします。
認証情報の利用手順
事前準備
今回は、AWS Lambda を実行し Slack へ通知すると同じくAWS Lambda経由でSlackに通知することを想定していますので、AWS Lambdaの作成までは完了していることとします。
- ステップ 1: Slack を設定する。
- ステップ 2: AWS Lambda を設定する。
AWSの設定
実行するAWS Lambda の AWS アカウントにログインし、SORACOM プラットフォームから実行を許可するためのロールを作成します。
- IAM サービスへ移動し、ロールを作成します。
- ロールの作成
指定されたエンティティの種類を選択
では、別のAWSアカウント
を選択します。- アカウントIDを入力します。SIMグループのカバレッジに応じて以下のとおり入力します。
- 日本カバレッジ: 762707677580
- グローバルカバレッジ: 950858143650
- 外部IDを入力します。任意の文字列を指定します。外部IDは認証情報ストアに認証情報を登録する際に指定しますので、メモをしておいてください。外部IDの詳細は、AWSの以下のサイトをご覧ください。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html - 次のステップに進み、Lambdaの実行(
lambda:InvokeFunction
)を許可するポリシーをアタッチ、もしくは新規作成してアタッチしてロールを作成します。作成が完了したら、外部IDと同じく、利用するので、IAMロールのARNをメモしておいてください。
ユーザーコンソールの設定
AWSの設定が完了したら、ユーザーコンソールの設定を行います。
- 右上のメニューをクリックして、セキュリティを選択してください。
- 左側のタブで認証情報ストアを選択して、認証情報を登録ボタンを選択します。
- 認証情報を登録します。
- 認証情報IDを入力します。認証情報の名称となりますので、わかりやすい文字列を指定してください。
- 種別は、
AWS IAM ロール認証情報
を指定してください。 - ロールARNには、
先程メモしたIAM ロールのARN
を入力します。 - 外部IDには、
先程メモした外部ID
を入力します。 - 最後に、登録ボタンを選択すると、認証情報が登録されます。
SORACOM Funkの設定
SORACOM Funkの設定をします。
- Funkの設定をONにします。
- サービスには、
AWS Lambda
を選択します。 - 関数のARNには、
AWS LambdaのARN
を入力します。 - 認証情報ストアで登録した、
認証情報ID
を選択します。 - 送信データ形式を選択します。
SORACOM Funkの実行
SORACOM Funk経由でAWS Lambdaを実行します。
$ curl -v -X POST -H "content-type:application/json" -d "{\"hello\": \"funk\"}" http://uni.soracom.io
IAMユーザーからIAMロールの認証情報への移行
既にIAMユーザーの認証情報を利用してSORACOM Funkを利用されている場合、IAM ロールの認証情報に移行する方法は簡単です。
- IAMユーザーで利用している
AWS Lambda ARN
を使用して、IAMロールを作成します。 - 認証情報ストアに作成した
IAMロール
を作成します。 - SORACOM Funk設定画面で、認証情報を手順2で作成した
認証情報ID
を指定します。
以上でIAMユーザの認証情報を用いた方法から、IAMロールの認証情報を用いた方法への移行が可能です。
まとめ
以上で、IAM ロールの認証情報を利用したSORACOM FunkでのAWS Lambdaの実行手順となります。
IAM ロールを利用することで、アクセスキーやシークレットキーの管理をせずに管理運用面での負担を削減できるようになると思いますので、ぜひご利用ください。
ソラコム 岡本(kiyo)