使用 IAM 身份中心设置 Amazon S3 访问授权 - AWS IAM Identity Center

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 IAM 身份中心设置 Amazon S3 访问授权

Amazon S3 Access Grants 提供了对 S3 位置授予基于身份的精细访问控制的灵活性。您可以使用 Amazon S3 直接Access Grants向您的企业用户和群组授予 Amazon S3 存储桶访问权限。按照以下步骤启用 S3 和 Access Grants IAM 身份中心并实现可信身份传播。

先决条件

在开始学习本教程之前,你需要进行以下设置:

配置 S3 访问授权,以便通过 IAM 身份中心传播可信身份

如果您已经拥有注册位置的 Amazon S3 Access Grants 实例,请按照以下步骤操作:
  1. 关联您的 IAM 身份中心实例

  2. 创建补助金

如果您Access Grants尚未创建 Amazon S3,请按照以下步骤操作:
  1. 创建 S3 Access Grants 实例-您可以为每个Access Grants实例创建一个 S3 实例 AWS 区域。创建 S3 Access Grants 实例时,请务必选中添加 IAM 身份中心实例复选框并提供您的 IAM 身份中心实例的 ARN。选择下一步

    下图显示了 Amazon S3 Access Grants 控制台中的创建 S3 Access Grants 实例页面:

    在 S3 访问权限授予控制台中创建 S3 Access Grants 实例页面。
  2. 注册营业地点-在您的账户中创建 Amazon S3 Access Grants 实例后,即可在该实例中注册一个 S3 地点。 AWS 区域 S3 Access Grants 位置将默认 S3 区域 (S3://)、存储桶或前缀映射到 IAM 角色。S3 Access Grants 假设此 Amazon S3 角色向访问该特定位置的被授权者提供临时证书。您必须先在 S3 Access Grants 实例中注册至少一个位置,然后才能创建访问授权。

    对于位置范围,请指定s3://,其中包括您在该区域的所有存储桶。对于大多数用例,这是推荐的位置范围。如果您有高级访问管理用例,则可以将位置范围设置为存储桶中的特定存储桶s3://bucket或前缀s3://bucket/prefix-with-path。有关更多信息,请参阅《Amazon 简单存储服务用户指南》中的注册地点

    注意

    确保您要授予访问权限的 AWS Glue 表的 S3 位置包含在此路径中。

    该过程要求您为该位置配置 IAM 角色。此角色应包括访问位置范围的权限。您可以使用 S3 控制台向导来创建角色。您需要在此 IAM 角色的策略中指定您的 S3 Access Grants 实例 ARN。您的 S3 Access Grants 实例 ARN 的默认值为。arn:aws:s3:Your-Region:Your-AWS-Account-ID:access-grants/default

    以下示例权限策略为 Amazon S3 授予您创建的 IAM 角色的权限。其后的示例信任策略允许 S3 Access Grants 服务委托人担任 IAM 角色。

    1. 权限策略

      要使用这些政策,请用您自己的信息替换示例italicized placeholder text中的策略。有关其他说明,请参阅创建策略编辑策略

      { "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "Your-AWS-Account-ID" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["Your-Custom-Access-Grants-Location-ARN"] } } }, { "Sid": "ObjectLevelWritePermissions", "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "Your-AWS-Account-ID" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["Your-Custom-Access-Grants-Location-ARN"] } } }, { "Sid": "BucketLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "Your-AWS-Account-ID" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["Your-Custom-Access-Grants-Location-ARN"] } } }, //Optionally add the following section if you use SSE-KMS encryption { "Sid": "KMSPermissions", "Effect":"Allow", "Action":[ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource":[ "*" ] } ] }
    2. 信任策略

      在 IAM 角色信任策略中,向 S3 访问权限管控服务 (access-grants.s3.amazonaws.com)主体授予对您创建的 IAM 角色的访问权限。为此,您可以创建一个包含以下语句的 JSON 文件。要将信任策略添加到您的账户,请参阅使用自定义信任策略创建角色

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Effect": "Allow", "Principal": { "Service":"access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount":"Your-AWS-Account-ID", "aws:SourceArn":"Your-Custom-Access-Grants-Location-ARN" } } }, //For an IAM Identity Center use case, add: { "Sid": "Stmt1234567891012", "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": "sts:SetContext", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Your-AWS-Account-ID", "aws:SourceArn":"Your-Custom-Access-Grants-Location-ARN" }, "ForAllValues:ArnEquals": { "sts:RequestContextProviders":"arn:aws:iam::aws:contextProvider/IdentityCenter" } } } ] }

创建 Amazon S3 访问授权

如果您有一个注册位置的 Amazon S3 Access Grants 实例,并且您已将您的 IAM 身份中心实例与该实例关联,则可以创建授权。在 S3 控制台的 “创建授权” 页面中,完成以下操作:

创建授权
  1. 选择在上一步中创建的位置。您可以通过添加子前缀来缩小授予的范围。子前缀可以是存储桶中的bucketbucket/prefix、或对象。有关更多信息,请参阅 Amazon 简单存储服务用户指南中的子前缀

  2. 在 “权限和访问权限” 下,根据需要选择 “读取” 和 “写入”。

  3. Granter 类型中,从 IAM 身份中心中选择目录身份

  4. 提供 IAM 身份中心用户或群组 ID。您可以在 IAM Identity Center 控制台的 “用户和群组 IDs ” 部分下找到该用户和群组。选择下一步

  5. 在 “查看并完成” 页面上,查看 S3 的设置,Access Grant然后选择创建授权

    下图显示了 Amazon S3 Access Grants 控制台中的 “创建授权” 页面:

    在 Amazon S3 访问授权控制台中创建 “授权” 页面。