如此处所建议的,我已创建了一个S3终端节点,并将其添加到主路由表中。终端节点上的策略允许对所有资源进行完全访问。
我创建了一个S3策略(见下文)并将其添加到了存储桶中。但是,一旦我保存该策略,就无法从控制台访问该存储桶。
我还尝试在“StringNotEquals”条件中明确添加一个用户,格式为“aws:username”:“user1”,但没有成功。
{
"Version": "2012-10-17",
"Id": "Policy-S3-Bucket-myBucket",
"Statement": [
{
"Sid": "Access-via-VPC-only",
"Principal": "*",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::myBucket",
"arn:aws:s3:::myBucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:sourceVpc": "vpc-01c9d66c12345"
}
}
},
{
"Sid": "Allow-console-access",
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::myBucket",
"arn:aws:s3:::myBucket/*"
],
"Principal": {
"AWS": [
"arn:aws:iam::<account-id>:user/user1", "arn:aws:iam::<account-id>:user/user2"
]
}
}
]
}
预期结果是S3存储桶仅可通过上述VPC和AWS控制台进行访问。
实际结果为:
存储桶概览显示“错误:拒绝访问”,权限页面(公共访问设置)显示:“您无权查看此配置。请联系您的帐户管理员请求访问权限。”
我必须使用根用户登录并删除策略,以恢复对存储桶的访问。