AWS Lambda関数で秘密情報を取り扱う方法を調べました。
目次
「Lambda 秘密情報」でググってみた
「Lambda 秘密情報」でググってみた。
参考元1:SSMのパラメータストアを活用して Lambda で機密情報 (SecureString) を扱う with AWS SAM
SSMのパラメータストアを活用して、Lambdaで機密情報(Secure String)を扱ってみました。 サンプルとして、SlackのWebhookURLをパラメータストアに格納してみました。
https://dev.classmethod.jp/articles/secure-string-with-lambda-using-parameter-store/
参考元2:機密情報をLambdaで使いたいとき
AWS Systems Manager パラメータストアを使いましょう。
https://qiita.com/kter/items/0b504213a2f338f1c022
参考元3:AWS Secrets Managerによる機密情報の管理
Amazon Web Services (AWS)はシークレット管理サービスとして「AWS Secrets Manager」を提供しており、シークレット管理に要する手間を大きく軽減します。
AWS Secrets ManagerはAWSのシークレット管理サービスであり、AWS Secrets Managerを利用することによってシークレットの保管・更新・監視などの手間を軽減することができます。
https://business.ntt-east.co.jp/content/cloudsolution/column-84.html
「Systems Managerのパラメータストア AWS Secrets Manager」でググってみた
「Systems Managerのパラメータストア AWS Secrets Manager」でググってみた。
参考元1:AWS Secrets Manager パラメータからの Parameter Store シークレットの参照
AWS Systems Manager の一機能である Parameter Store は Secrets Manager と統合されたため、
Parameter Store パラメータへの参照がすでにサポートされている他の AWS のサービスを使用するときに、Secrets Manager シークレットを取得できます。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/integration-ps-secretsmanager.html
参考元2:AWS の Parameter Store と Secrets Manager はどのように使い分けますか?
ざっくりとした理解ですが、私が重要そうだと思った違いは以下の 2 点です:
https://ja.stackoverflow.com/questions/68897/aws-%E3%81%AE-parameter-store-%E3%81%A8-secrets-manager-%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B
・Parameter Store のスタンダードタイプは追加料金無しで利用できる。
・Secret Manger では秘匿値のローテーションとデータベース統合ができる。
まとめ
Lambda上で秘密情報を扱う方法は、「Systems Managerのパラメータストア」と「AWS Secrets Manager」の方法があることが分かった。
AWS Systems Manager の一機能である Parameter Store は Secrets Manager と統合されたとのことなので、どちらでやっても問題なさそう。
また、AWS Secrets Managerは有料に対して、Parameter Storeはスタンダードであれば無料
→「Systems Managerのパラメータストア」を使うことにする。
本調査の結果、System MangerのパラメータストアでLambda関数上で秘密情報を扱うことができました。その方法を以下のブログにまとめたので、よろしければご覧ください。
以上!
コメント