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/
![](https://devio2023-media.developers.io/wp-content/uploads/2019/05/aws-systems-manager-ssm.png)
参考元2:機密情報をLambdaで使いたいとき
AWS Systems Manager パラメータストアを使いましょう。
https://qiita.com/kter/items/0b504213a2f338f1c022
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU2JUE5JTlGJUU1JUFGJTg2JUU2JTgzJTg1JUU1JUEwJUIxJUUzJTgyJTkyTGFtYmRhJUUzJTgxJUE3JUU0JUJEJUJGJUUzJTgxJTg0JUUzJTgxJTlGJUUzJTgxJTg0JUUzJTgxJUE4JUUzJTgxJThEJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz01ODhiNjUzMDk3MThmOTJmNDMxNzZlNTllYmUzODJmZA&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrdGVyJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1jOTBmY2EzMjk1NGRjZDk3MTI1NGI0M2E3NDQ5MzZmNA&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4g5qCq5byP5Lya56S-44Kv44Oq44O844Oe&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=fd78042876317fea92e5aa2abce276a0)
参考元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
![](https://business.ntt-east.co.jp/content/cloudsolution/images/common/ogp_thumbnail.jpg)
「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関数上で秘密情報を扱うことができました。その方法を以下のブログにまとめたので、よろしければご覧ください。
![](https://create-it-myself.com/wp-content/uploads/howto-handle-confidential-info-on-lambda-EC-160x90.png)
以上!
コメント