Amazon S3访问控制


Amazon S3 提供了一系列的工具,使我们能够细粒度地控制对存储桶和其中的对象的访问。这些工具主要基于IAM用户的身份或请求的网络位置(如IP地址或VPC)。

1. 基于身份的访问控制:

你可以创建一个 IAM 策略并将其附加到特定的 IAM 用户、组或角色上,以确保只有这些身份可以访问 S3 资源。

示例策略

这个策略允许特定 IAM 用户访问 example-bucket

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:user/USERNAME"},
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::example-bucket/*"
        }
    ]
}

2. 基于网络位置的访问控制:

你可以基于请求的来源 IP 或是否来自特定 VPC 来限制访问。

  1. IP 地址:IP 地址是任何设备在互联网或本地网络上的唯一地址。它允许网络中的设备彼此识别和通信。常见的 IPv4 地址格式为 xxx.xxx.xxx.xxx,例如 192.168.1.1

  2. VPC 内的 IP 地址:Amazon Virtual Private Cloud (VPC) 允许你在 AWS 云中启动资源(如 EC2 实例)并为它们提供一个私有的、隔离的网络环境。这些私有网络资源有它们自己的私有 IP 地址。通常,这些 IP 地址在 10.0.0.0/16 或其他私有 IP 地址范围内。

示例策略

以下策略仅允许来自 IP 地址 203.0.113.0/24 以及 VPC vpc-xxxxxxxx 的访问:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::example-bucket/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "203.0.113.0/24"
                },
                "StringNotEquals": {
                    "aws:sourceVpc": "vpc-xxxxxxxx"
                }
            }
        }
    ]
}

文章作者: AWS Learner
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AWS Learner !
评论
  目录