允许访问存储桶是否自动意味着可以访问其中的所有内容?
Does allowing access to a bucket automatically imply access to everything inside?
对于允许访问存储桶及其中的所有内容的策略,是否需要选中对象旁边的 'Any' 框(或者只是允许访问存储桶意味着可以访问其内容)?
我问有两个原因 i) 以便策略可以访问存储桶内的对象,而且 ii) 确认选中 'Any' 框 不会 授予对指定存储桶 外部 对象的访问权限(如果它实现了并且没有实现可能会很糟糕) - 我认为它可能没有但最好可以肯定。
不,访问存储桶(如 arn:aws:s3:::mybucket
等策略资源所示)不提供对该存储桶中对象的任何 API 访问。要访问这些对象,您需要允许对 arn:aws:s3:::mybucket/*
.
等对象资源执行 API 操作
您显示的 IAM 对话框非常方便,可帮助您创建 JSON 策略。您可以随时单击 JSON 选项卡查看等效的 JSON 策略。
该对话框有 4 种资源类型:访问点、存储桶、作业、对象。它们彼此独立。在 'bucket' 部分下选择特定的 S3 存储桶 不会 对 'object' 部分产生任何影响。
因此,如果您在 bucket 下指示 mybucket
并在 object 下指示 Any
,您的政策将包含如下内容:
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::*/*",
"arn:aws:s3:::mybucket"
]
}
请特别注意,这允许针对存储桶 (arn:aws:s3:::mybucket
) 和 所有 [=35] 中的对象的所有 S3 操作 (s3:*
) =]所有个桶(arn:aws:s3:::*/*
)。
如果要允许对 mybucket
存储桶和 mybucket
中的所有对象执行操作,请在存储桶下指示 mybucket
,取消选择对象下的 'Any' , 并在object下注明arn:aws:s3:::mybucket/*
。您的 JSON 政策现在将如下所示:
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
]
}
对于允许访问存储桶及其中的所有内容的策略,是否需要选中对象旁边的 'Any' 框(或者只是允许访问存储桶意味着可以访问其内容)?
我问有两个原因 i) 以便策略可以访问存储桶内的对象,而且 ii) 确认选中 'Any' 框 不会 授予对指定存储桶 外部 对象的访问权限(如果它实现了并且没有实现可能会很糟糕) - 我认为它可能没有但最好可以肯定。
不,访问存储桶(如 arn:aws:s3:::mybucket
等策略资源所示)不提供对该存储桶中对象的任何 API 访问。要访问这些对象,您需要允许对 arn:aws:s3:::mybucket/*
.
您显示的 IAM 对话框非常方便,可帮助您创建 JSON 策略。您可以随时单击 JSON 选项卡查看等效的 JSON 策略。
该对话框有 4 种资源类型:访问点、存储桶、作业、对象。它们彼此独立。在 'bucket' 部分下选择特定的 S3 存储桶 不会 对 'object' 部分产生任何影响。
因此,如果您在 bucket 下指示 mybucket
并在 object 下指示 Any
,您的政策将包含如下内容:
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::*/*",
"arn:aws:s3:::mybucket"
]
}
请特别注意,这允许针对存储桶 (arn:aws:s3:::mybucket
) 和 所有 [=35] 中的对象的所有 S3 操作 (s3:*
) =]所有个桶(arn:aws:s3:::*/*
)。
如果要允许对 mybucket
存储桶和 mybucket
中的所有对象执行操作,请在存储桶下指示 mybucket
,取消选择对象下的 'Any' , 并在object下注明arn:aws:s3:::mybucket/*
。您的 JSON 政策现在将如下所示:
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
]
}