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

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

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

Amazon S3 Access Grants 提供灵活的基于身份的细粒度访问控制能力,可用于授权访问 S3 位置。您可以通过 Amazon S3 Access Grants,直接向企业用户和组授予 Amazon S3 存储桶的访问权限。按照以下步骤启用 S3 Access Grants 与 IAM Identity Center 的集成,实现可信身份传播。

先决条件

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

通过 IAM Identity Center 配置可信身份传播的 S3 访问权限管控

如果您已创建 Amazon S3 Access Grants 实例且已注册位置,请执行以下步骤:
  1. 关联您的 IAM Identity Center 实例

  2. 创建授权

如果您尚未创建 Amazon S3 Access Grants,请执行以下步骤:
  1. 创建 S3 Access Grants 实例-您可以为每个Access Grants实例创建一个 S3 实例 AWS 区域。创建 S3 Access Grants 实例时,请务必勾选添加 IAM Identity Center 实例选项框,并提供您的 IAM Identity Center 实例 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 Simple Storage Service 用户指南》中的注册位置

    注意

    确保您要授予访问权限的 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

    以下权限策略示例为您创建的 IAM 角色授予 Amazon S3 权限。后续的信任策略示例允许 S3 Access Grants 服务主体扮演该 IAM 角色。

    1. 权限策略

      要使用这些政策,请用您自己的信息替换示例italicized placeholder text中的策略。有关详细操作指引,请参阅创建策略编辑策略

      JSON
      { "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": "111122223333" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": [ "arn:aws:s3:::access-grants/instance-id" ] } } }, { "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": "111122223333" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": [ "arn:aws:s3:::access-grants/instance-id" ] } } }, { "Sid": "BucketLevelReadPermissions", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": [ "arn:aws:s3:::access-grants/instance-id" ] } } }, { "Sid": "OptionalKMSPermissionsForSSEEncryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ] } ] }
    2. 信任策略

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

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Effect": "Allow", "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "Your-Custom-Access-Grants-Location-ARN" } } }, { "Sid": "Stmt1234567891012", "Effect": "Allow", "Action": "sts:SetContext", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "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 Identity Center 实例,则可以创建授权。在 S3 控制台的创建授权页面,完成以下操作:

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

  2. 权限和访问下,根据需求选择读取和/或写入

  3. 授权方类型中,选择来自 IAM Identity Center 的目录身份

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

  5. 审核并完成页面,确认 S3 Access Grant 的设置,然后选择创建授权

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

    Amazon S3 访问权限管控控制台的“创建授权”页面。