【发布时间】:2017-08-30 21:27:43
【问题描述】:
我正试图让 Adobe 使用 Adobe Experience Amazon S3 文件交付将他们的点击流分析数据发布到我创建的 AWS S3 存储桶(称为 adobe)。因此,我创建了一个 IAM 用户,将其分配给具有以下 IAM 策略的组,并为 Adobe S3 File Delivery 配置了 IAM 用户的访问权限和密钥。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "AllowRootLevelListingOfCompanyBucket",
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::adobe",
"arn:aws:s3:::adobe/*"
]
}
]
}
不确定存储桶地址是什么但尝试过:
https://s3-eu-west-1.amazonaws.com/adobe/daily/
每次 Adobe 都返回此错误时:
异常捕获:调用GetBucketLocation操作时发生错误(AccessDenied):访问被拒绝
我尝试通过网络托管此存储桶并尝试使用此存储桶地址:
http://adobe.s3-website-eu-west-1.amazonaws.com
...同样的错误。
使用 Cloudberry for S3,我检查了密钥和访问密钥,它在访问该存储桶和子文件夹方面运行良好。我没有使用 CLI 检查。
非常感谢任何想法/帮助。谢谢。
【问题讨论】:
-
从错误消息中我看到 Adobe 正在使用 API 执行 S3 任务,对于 API,不需要 S3 URL。如果 Adobe 为您提供任何 AWS 账户 ID 或角色/用户,您必须使用 docs.aws.amazon.com/AmazonS3/latest/dev/… 中所述的 S3 存储桶策略。 IAM 用户在您的账户中,因此该政策不适用于 Adobe(除非您已与他们共享访问密钥并且不推荐这样做)。
-
忘了提到,对于网站托管,您必须使用 S3 ACL 来授予访问权限。请确保仅授予对象读取权限,否则您将向世界打开存储桶。 ACL设置指南:docs.aws.amazon.com/AmazonS3/latest/user-guide/…
-
我猜你指的是Adobe Experience Amazon S3 File Delivery。在您的上述测试中,您是如何访问存储桶的?您是否将 AWS Command-Line Interface (CLI) 与您创建的 IAM 用户的凭证一起使用,或者您是否只是将上述链接放在 Web 浏览器中?请编辑您的问题,以提供有关您如何测试访问权限的更多详细信息。
-
Adobe S3 File Delivery 要求您向他们提供 4 个东西:存储桶名称 ('adobe')、访问密钥、秘密密钥和文件夹名称(例如 'clickstream')。
标签: amazon-web-services amazon-s3 adobe-analytics bucket