如何使用Python的boto3检查Lambda函数环境变量是否加密传输?
检查Lambda函数环境变量加密状态的boto3实现
你可以通过boto3调用Lambda的get_function API,从返回的函数配置中判断环境变量是否加密:
- 当Lambda环境变量启用加密时,函数配置的
Environment字段下会包含KmsKeyArn值(无论是自定义KMS密钥还是AWS托管的aws/lambda密钥) - 未加密的环境变量则不会有这个字段
代码示例
import boto3 def check_lambda_env_encryption(function_name): lambda_client = boto3.client('lambda') response = lambda_client.get_function(FunctionName=function_name) env_config = response['Configuration'].get('Environment', {}) kms_key_arn = env_config.get('KmsKeyArn') if kms_key_arn: print(f"Lambda函数 {function_name} 的环境变量已加密,使用的KMS密钥ARN: {kms_key_arn}") return True else: print(f"Lambda函数 {function_name} 的环境变量未加密") return False # 调用示例 check_lambda_env_encryption("your-lambda-function-name")
注意事项
- 执行代码的IAM身份需要拥有
lambda:GetFunction权限 - 如果使用AWS托管的KMS密钥(
aws/lambda),返回的KmsKeyArn会是AWS托管密钥的ARN格式,同样代表环境变量已加密
内容的提问来源于stack exchange,提问作者huunguyen
相关产品推荐
相关产品推荐

