【问题标题】:Authentication and aws lambda function身份验证和 aws lambda 函数
【发布时间】:2020-11-11 08:01:53
【问题描述】:

我有一个简单的 python 脚本,我想作为 lambda 函数运行:

import boto3
from datetime import datetime, timedelta

get_last_modified = lambda obj: obj['SnapshotCreateTime'].timestamp()

rds_client = boto3.client('rds')
objs = rds_client.describe_db_cluster_snapshots(DBClusterIdentifier='db-cluster')['DBClusterSnapshots']

print(objs)

通常在 linux 中,我将拥有包含身份验证密钥和令牌的 .aws/config 文件。 在哪里添加 lambda 填充这些值?

【问题讨论】:

  • 您必须使用具有所需权限的 IAM 角色。

标签: amazon-web-services aws-lambda


【解决方案1】:

请使用带有 lambda 函数的 IAM 角色来设置新/更新策略。

  1. 转到 IAM
  2. 转到角色
  3. 搜索并点击与您的 lambda 函数关联的 IAM 角色
  4. 更新旧政策或附加现有政策中的一项
  5. 保存更改。

现在您应该可以访问该资源了。

注意:如果您将 IAM 角色与服务一起使用,则无需创建任何 ACCESS_KEY 或 ACCESS_SECRET。

【讨论】:

    【解决方案2】:

    为了补充@Rahul 关于修改 lambda 执行角色的内容,您还需要修改您的代码。它不会以当前形式在 lambda 上运行。

    具体来说,它需要lambda_handler。例如:

    import boto3
    from datetime import datetime, timedelta
    
    get_last_modified = lambda obj: obj['SnapshotCreateTime'].timestamp()
    rds_client = boto3.client('rds')
    
    def lambda_handler(event, context):
    
        objs = rds_client.describe_db_cluster_snapshots(DBClusterIdentifier='db-cluster')['DBClusterSnapshots']
    
        print(objs)
    

    【讨论】:

      猜你喜欢
      • 2016-12-22
      • 2019-06-19
      • 2019-09-01
      • 1970-01-01
      • 2019-06-07
      • 2019-11-18
      • 2016-09-27
      • 2018-04-20
      • 2016-10-22
      相关资源
      最近更新 更多