使用 IAM Identity Center 设置Amazon S3 访问权限管控 - Amazon IAM Identity Center
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 IAM Identity Center 设置Amazon S3 访问权限管控

Amazon S3 Access Grants 提供了对 S3 位置授予基于身份的精细访问控制的灵活性。您可以使用 Amazon S3 直接Access Grants向公司用户和组授予对 Amazon S3 存储桶的访问权限。请按照以下过程启用 S3 的 IAM Access Grants Identity Center,实现可信身份传播。

先决条件

在开始本教程之前,您首先需要设置以下方面:

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

如果您已有一个注册位置的 Amazon S3 Access Grants 实例,请按照以下步骤操作:
  1. 关联 IAM Identity Center

  2. 创建补助金

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

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

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

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

    注意

    确保您要授予访问权限的 Amazon 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 访问权限控制台中创建授予页面。