允许在无需身份验证的情况下通过 AWS 内的 VPC 访问 AWS S3 存储桶

abd*_*wer 2 amazon-s3 amazon-web-services amazon-vpc gitlab-ci-runner amazon-eks

有没有办法允许通过AWS中的VPC访问AWS S3存储桶中的对象而无需身份验证?我不想为此使用 AWS IAM 角色或用户。我不想禁用除 VPC 之外的所有对象的访问,因为对象应该通过 AWS 外部的 AWS IAM 角色进行访问。

目的:为在私有节点上的 AWS EKS Kubernetes 集群内运行的 GitLab Runner 提供 AWS S3 存储桶访问权限。

注意:公共访问已被阻止并将继续被阻止。所有对象都是私有的并且将保持私有。

abd*_*wer 5

是的,您可以允许通过 AWS 中的 VPC 访问 AWS S3 存储桶中的对象,而无需使用 S3 的 AWS VPC 终端节点 (VPCE) 和该 AWS S3 存储桶上的存储桶策略进行身份验证。

需要考虑的要点:

  • 应为 AWS S3 存储桶所在区域中的类型的S3服务创建 AWS VPC 终端节点 (VPCE),并选择所需的 AWS VPC 和路由表以及策略。GatewayFull Access
  • AWS S3 存储桶策略应仅允许该 AWS VPC 终端节点。

AWS S3 存储桶策略示例如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "allow-access-to-S3-bucket-via-VPC-endpoint",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[BUCKET_NAME]/*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpce": "[VPCE_ID]"
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

其中[BUCKET_NAME][VPCE_ID]将相应地替换为适当的值。

来源:如何将我的 Amazon VPC 配置为在不使用身份验证的情况下私​​下连接到我的 S3 存储桶?