Principals - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Principals

Principal 元素用于指定被允许或拒绝访问资源的用户、账户、服务或其他实体。下面是指定 Principal 的示例。有关更多信息,请参阅《IAM 用户指南》中的委托人

向 Amazon Web Services 账户 授予权限

要向 Amazon Web Services 账户 授予权限,则使用以下格式标识此账户。

"AWS":"account-ARN"

示例如下。

"Principal":{"AWS":"arn:aws:iam::AccountNumber-WithoutHyphens:root"}
"Principal":{"AWS":["arn:aws:iam::AccountNumber1-WithoutHyphens:root","arn:aws:iam::AccountNumber2-WithoutHyphens:root"]}

Amazon S3 还支持规范用户 ID,这是 Amazon Web Services 账户 ID 的模糊形式。可使用以下格式指定此 ID。

"CanonicalUser":"64-digit-alphanumeric-value"

以下是示例。

"Principal":{"CanonicalUser":"64-digit-alphanumeric-value"}

有关如何查找您的账户的规范用户 ID 的信息,请参阅查找账户的规范用户 ID

重要

在策略中使用规范用户 ID 时,Amazon S3 可能会将规范 ID 更改为相应的 Amazon Web Services 账户 ID。这不会影响策略,因为这两个 ID 标识相同的账户。

向 IAM 用户授予权限

要向您的账户中的 IAM 用户授予权限,您必须提供 "AWS":"user-ARN" 名称值对。

"Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}

有关提供分步说明的详细示例,请参阅 示例 1:存储桶拥有者向其用户授予存储桶权限 示例 3:存储桶拥有者授予不属于自己的对象的权限

授予匿名权限

要授予每个人权限,也称为匿名访问,请将 "*" 值设置为通配符 (Principal)。例如,如果您将存储桶配置为网站,您将需要使该存储桶中的所有对象都可公开访问。以下项目具有相同的效果。

"Principal":"*"
"Principal":{"AWS":"*"}
警告

在授予对您的 S3 存储桶的匿名访问权限时应谨慎使用。如果您授予匿名访问权限,那么世界上的任何人都可以访问您的存储桶。我们强烈建议您绝对不要授予对 S3 存储桶的任何类型的匿名写入权限。

要求通过 CloudFront URL 进行访问

您可以要求用户使用 Amazon CloudFront URL 而不是 Amazon S3 URL 访问您的 Amazon S3 内容。为此,请创建 CloudFront 源访问身份 (OAI)。然后,更改对您的存储桶或存储桶中对象的权限。在 Principal 语句中指定 OAI 的格式如下所示。

"Principal":{"CanonicalUser":"Amazon S3 Canonical User ID assigned to origin access identity"}

有关更多信息,请参阅《Amazon CloudFront 开发人员指南》中的使用源访问身份限制对您的 Amazon S3 内容的访问