您的问题相当混乱,但我假设您问的是如何允许其他 AWS 账户中的用户访问 Amazon S3 存储桶(包括创建和读取文件)。
你有:
首先,您需要向帐户 B 添加一个允许用户 A 访问的策略。它看起来像:
{
"Id": "Policy1",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucket-b",
"arn:aws:s3:::bucket-b/*"
],
"Principal": "arn:aws:iam::<Account-A>:user/User-A"
}
]
}
请注意,此策略适用于 Account-B 中的 Bucket-B,但它授予 Account-A 中的 User-A 访问权限。
其次,User-A 需要使用 S3 的权限。这可能已经授予用户,但值得一提的是,他们需要被授予实际调用 S3 的权限。以下是他们需要的政策示例:
{
"Id": "Policy1",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucket-b",
"arn:aws:s3:::bucket-b/*"
]
}
]
}
澄清一下:如果他们已经有一个允许他们在任何存储桶上调用 S3 的策略(例如 Resource: * 上的 s3:*),那么他们将不需要上述策略,因为他们已经有权调用 S3。
但是……
如果您实际上是想限制一些事情,以便用户 A 上传的文件对用户 B 是只读的,而用户 B 创建的文件对用户 A 是只读的,这很多更难,最好避免使用,除非您编写自己的管理应用程序或使用单独的路径来控制权限。