投稿日 2020-10-13

イベントハンドラー機能の AWS Lambda アクションの認証情報に IAM ロールが指定可能に

こんにちは。エンジニアの kaz です。本記事は、主にイベントハンドラー機能をご利用のお客様にお知らせです。

イベントハンドラーとは、データ通信量、SIM のステータス変更や有効期限などを条件に通知やその他アクションを実行できる機能です。例えば、
・SIM の日次通信量が 5 MBを超えたらそれ以上は通信できないようにする。
・SIM が通信を開始して Active になったら、お客様の AWS Lambda を呼び出す
といった設定ができます。

この度、イベントハンドラーの AWS Lambda アクションに IAM ロールを指定した認証情報が指定できるようになりました。従来は、認証情報を設定するために IAM ユーザーを作成したあと AWS アクセスキーシークレットアクセスキーの組み合わせを指定していたのですが、これらのユーザーやキーの管理はお客様の運用負荷が比較的高くなってしまうという課題がありました。今後は IAM ロールを利用してあらかじめ認証情報を登録しておき、イベントハンドラーの設定時には認証情報を選択することで管理負荷を減らすことができます。

認証情報の利用手順

AWSの設定

イベントハンドラーから呼び出したい Lambda を持つ AWS アカウントにログインし、SORACOM プラットフォームからの呼び出しを許可するためのロールを作成します。IAM サービスへ移動し、ロールを作成します。

信頼されたエンティティの種類では、別の AWS アカウントを選択します。そしてアカウント ID には、イベントハンドラーを作成するカバレッジに応じて以下のように指定します。

  • 日本カバレッジ: 762707677580
  • グローバルカバレッジ: 950858143650

外部 ID は、任意の文字列を指定します。この文字列は、後ほど認証情報を登録する際に指定します。外部 ID の詳細については、AWS の以下のサイトをご覧ください。

その後、Lambda の呼び出しを許可するポリシーをアタッチしてロールを作成し、そのロールの ARN をメモします。こちらも認証情報の登録時に指定します。

ユーザーコンソールの設定

事前準備が完了したら、ユーザコンソールにログインします。右上のメニューをクリックしてセキュリティを選択してください。次に、左側のタブで認証情報ストアを選択して、認証情報を登録ボタンをクリックします。

認証情報 ID は、分かりやすい名前を入力してください。種別には AWS IAM ロール認証情報を選択します。そして、ロール ARN と外部 ID に先ほど作成したロールのものを指定して登録をクリックすると、認証情報が登録できます。

もし従来通りアクセスキーによる呼び出しをしたい場合は、以下のように AWS 認証情報を登録してください。

イベントハンドラーの設定

今後新たにイベントハンドラーのアクションで AWS Lambda を呼び出すを指定した場合、認証情報 ID を選択することになります。この一覧には、認証情報のうちAWS 認証情報AWS IAM ロール認証情報の種別のものだけが表示されますので、先ほど作成した認証情報 ID を選択することで AWS Lambda の呼び出し時にその認証情報を利用します。その他の設定については、従来通りと同じ手順となります。

API 呼び出し

API をご利用の方は、今後は accessKeysecretAccessKey の代わりに credentialsId をご利用ください。詳細については、以下のサイトの InvokeAWSLambdaAction の設定をご覧ください。

まとめ

以上が、IAM ロール認証情報を利用したイベントハンドラーの AWS Lambda アクションの利用手順となります。少し手順が難しそうに見えるかもしれませんが、一度試してみると思ったより簡単にできるのではないかと思います。IAM ロールを利用すれば、アクセスキーやシークレットアクセスキーを直接入力しなくて済むようになりますので、ぜひご利用ください!

ソラコム 中西 (kaz)