如何允许我的 Lambda 执行角色访问 Amazon S3 存储桶?

2 分钟阅读
0

我希望我的 AWS Lambda 函数能够访问 Amazon Simple Storage Service (Amazon S3) 存储桶。该如何操作?

简短描述

要向您的 Lambda 函数授予对同一 AWS 账户中 Amazon S3 存储桶的访问权限,请执行以下操作:

1.    为 Lambda 函数创建 AWS Identity and Access Management (IAM) 角色,它还将授予对 S3 存储桶的访问权限。

2.    将 IAM 角色配置为 Lambda 函数的执行角色

3.    验证 S3 存储桶策略没有明确拒绝对 Lambda 函数或其执行角色的访问。

**重要提示:**如果您的 S3 存储桶和函数的 IAM 角色位于不同的账户中,则还必须在 S3 存储桶策略中授予所需的权限。有关更多信息,请参阅如何提供对 Amazon S3 存储桶中的对象的跨账户存取权限?

解决方法

为 Lambda 函数创建 IAM 角色,同时授予对 S3 存储桶的访问权限

1.    按照在 IAM 控制台中创建执行角色中的步骤进行操作。

2.    从 IAM 角色列表中,选择您刚刚创建的角色。

3.    从权限选项卡中,选择添加内联策略

4.    选择 JSON 选项卡。

5.    输入基于资源的 IAM 策略,该策略授予对 S3 存储桶的访问权限。有关更多信息,请参阅将基于资源的策略用于 AWS Lambda

授予对特定 S3 存储桶的访问权限的 IAM 策略示例

**重要提示:**用 "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*" 替换您 S3 存储桶的 Amazon Resource Name (ARN)。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*"
      ]
    }
  ]
}

6.    选择查看策略

7.    在名称字段中输入策略名称。

8.    选择 Create policy(创建策略)。

将 IAM 角色配置为 Lambda 函数的执行角色

1.    打开 Lambda 控制台

2.    选择 Lambda 函数。

3.    在执行角色下,对于现有角色,选择您创建的 IAM 角色。

4.    选择 Save(保存)。

验证 S3 存储桶策略没有明确拒绝对 Lambda 函数或其执行角色的访问

要查看或编辑 S3 存储桶策略,请按照使用 Amazon S3 控制台添加存储桶策略中的说明进行操作。

**重要提示:**如果您的 S3 存储桶和函数的 IAM 角色位于不同的账户中,则还必须在 S3 存储桶策略中明确授予所需的权限。有关更多信息,请参阅如何提供对 Amazon S3 存储桶中的对象的跨账户存取权限?

IAM S3 存储桶策略示例,该策略向 Lambda 执行角色授予跨账户访问 S3 存储桶的权限

**重要提示:**将 "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*" 替换为您 S3 存储桶的 ARN。将 "arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012" 替换为您 Lambda 执行角色的 ARN。

{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*"
      ],
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012"
        ]
      }
    }
  ]
}

相关信息

AWS Policy Generator

相关视频

AWS 官方
AWS 官方已更新 2 年前