示例容器策略:对角色的跨账户完全访问权限 - AWS元素 MediaStore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

示例容器策略:对角色的跨账户完全访问权限

此示例策略允许跨账户访问权限以更新账户中的任何对象,只要用户通过 HTTP 登录即可。它还允许跨账户访问权限以通过 HTTP 或 HTTPS 删除、下载和描述对象,只要这个账户已担任指定的角色:

  • 第一个语句是 CrossAccountRolePostOverHttps。它允许在任何对象上访问 PutObject 操作,并且对指定账户的任何用户允许此访问权限,前提是该账户已担任在 <角色名称> 中指定的角色。它指定此访问具有对于操作需要 HTTPS 的条件(此条件在提供对 PutObject 的访问权限时必须始终包含在内)。

    换言之,具有跨账户访问权限的任何委托人都可以访问 PutObject,但只能通过 HTTPS 进行访问。

  • 第二个语句是 CrossAccountFullAccessExceptPost。它允许在任何对象上访问除 PutObject 之外的所有操作。它对指定账户的任何用户允许此访问权限,前提是该账户已担任在 <角色名称> 中指定的角色。此访问没有对于操作需要 HTTPS 的条件。

    换言之,具有跨账户访问权限的任何账户都可以访问 DeleteObjectGetObject 等(PutObject 除外),而且可通过 HTTP 或 HTTPS 执行此操作。

    如果您从第二个语句中未排除 PutObject,则该语句将不会有效(因为如果包含 PutObject,您必须将 HTTPS 显式设置为条件)。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountRolePostOverHttps", "Effect": "Allow", "Action": "mediastore:PutObject", "Principal":{ "AWS": "arn:aws:iam::<other acct number>:role/<role name>"}, "Resource": "arn:aws:mediastore:<region>:<owner acct number>:container/<container name>/*", "Condition": { "Bool": { "aws:SecureTransport": "true" } } }, { "Sid": "CrossAccountFullAccessExceptPost", "Effect": "Allow", "NotAction": "mediastore:PutObject", "Principal":{ "AWS": "arn:aws:iam::<other acct number>:role/<role name>"}, "Resource": "arn:aws:mediastore:<region>:<owner acct number>:container/<container name>/*" } ] }