はじめに
簡単な復習と備忘録のために、CLIもしくはCloudFormationでLambdaを作成する際の注意点を記事にしたいと思います。今回は簡単ですが、次回以降の記事では詳細な検証を行っていきたいと思います。
CLIやCloudFormationでAWS Lambda関数を作成する場合、デフォルトではリソースベースポリシーは自動的に作成されません。これはマネジメントコンソールでLambda関数を作成する場合はリソースベースポリシーが作成されます。
リソースベースポリシーとは
リソースベースポリシーは、そのリソース(この場合はLambda関数)自体に設定されるポリシーで、他のAWSアカウントやサービスがそのリソースにアクセスする際の権限を定義します。このポリシーを適切に設定することで、アクセス制御を厳密に行うことができます。
最小権限の原則の重要性
最小権限の原則を守ることで、セキュリティリスクを最小限に抑えることができます。そのためには、リソースベースポリシーを設定することで、以下の点を明確に制御できます。
誰がLambda関数にアクセスできるか
- 特定のAWSサービス、IAMユーザー、ロール、または他のAWSアカウントに限定できます。
どのようなアクションが許可されているか
- lambda:InvokeFunctionなど、許可する操作を限定できます。
リソースベースポリシーが不適切な場合のリスク
意図しないアクセスの許可:リソースベースポリシーを不適切に設定すると、他のアカウントやサービスにLambda関数へのアクセスを許可してしまう可能性があります。特に、Principalに"*"を指定すると、全てのユーザーにアクセスが許可されてしまいます。
セキュリティリスクの増大:第三者がLambda関数を不正に呼び出したり、操作されるリスクがあります。
AWS Security Hubでの検知対象
Lambda関数がパブリックアクセス可能な状態であるリソースベースポリシーが過度に許可されている場合、AWS Security Hubの検知対象となります。Security Hubは、このようなセキュリティリスクを自動的に検出し、対応が必要な事項として報告します。
まとめ
リソースベースポリシーを適切に設定することが大切です。最小権限の原則に基づき、必要最低限のアクセス権限のみを許可しましょう。
CLIやCloudFormationなどを使用してLambdaを作成するときは、リソースベースポリシーを忘れずに作成しましょう。
参考
https://docs.aws.amazon.com/securityhub/latest/userguide/lambda-controls.html#lambda-1
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#fsbp-lambda-2