在AWS中创建策略时遇到问题



我被指派在AWS中创建一个我认为是bucket策略的任务。我已经上传了一个视频到S3存储桶,我必须创建一个策略来限制谁可以根据他们的IP地址来查看它。目前我需要制作它,这样只有我的家庭网络中的人才能观看。

我还应该根据用户名来限制谁可以观看。这个bucket现在可以公开查看,视频文件也是如此。

我在下面尝试了两种政策,但都不起作用。

第一个策略:我已经尝试使用我的私人和公共IP地址。

{
"Version": "2012-10-17",
"Id": "Policy1607205862213",
"Statement": [
{
"Sid": "Stmt1607205861134",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::internshipbucket12",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "10.1.10.1"
}
}
}
]
}

第二个策略:每当我尝试使用bucket的arn时,它都会出现某种错误。当我放入我正在使用的视频文件的arn时,它会很好地接受它。

{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET;",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "54.240.143.0/24"
}
}
}
]
}

Amazon S3存储桶默认情况下是私有的。因此,没有必要"拒绝"访问,因为默认情况下已经拒绝了访问。相反,您应该使用"允许"策略来允许访问。

  • 关闭阻止S3公共访问(或至少引用Bucket策略的两个部分(
  • 添加允许从给定IP地址访问对象的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::internshipbucket12/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "54.240.143.0"
}
}
}
]
}

请注意,这是授予对公共IP地址的访问权限,并且只允许GetObject,因此用户需要知道他们想要的对象的确切文件名(Key((因为它不授予列出存储桶内容的权限(。

最新更新