我喜欢使用IAM(身份和访问管理)来创建具有特定用途的特定权限的用户/组。
产品广告API需要使用访问密钥(请求参数为AWSAccessKeyId),IAM可以生成访问密钥,但我没有办法让IAM用户/组只能访问 产品广告API。
任何人都知道这是否可以做到?或者你知道一个解决方法吗?
答案 0 :(得分:11)
阅读提及的帖子IAM policies for Amazon Product API完全揭示,提问者实际上只是尝试了这一点,即使用IAM访问密钥来访问产品广告API,但显然无济于事。所以我担心提到的AWS team response必须从字面上理解,不幸的是IAM还没有涵盖你的用例。
AWS Identity and Access Management (IAM)目前不支持Product Advertising API(请参阅AWS团队对IAM policies for Amazon Product API的回复),但假设IAM访问密钥也可以在那里工作,那么您可以拒绝您的用户/群组至少可以通过相应的IAM policy访问支持IAM的所有其他 AWS服务(应涵盖大多数关键版本)。推荐的AWS Policy Generator可以帮助制定相应的策略,这可能实际上就像这样简单(我刚刚选择了效果 - >拒绝并检查了 AWS服务 - >所有服务复选框):
{
"Statement": [
{
"Sid": "Stmt1331670627168",
"Action": "*",
"Effect": "Deny",
"Resource": "*"
}
]
}
答案 1 :(得分:2)
作为亚马逊产品API isn't yet covered by IAM Policies,人们可以预期,如果用户没有附加任何政策就足够了default is to deny。 (换句话说,对于此类用户,除了不受IAM保护的Product API之外,一切都将被拒绝。)
但事实并非如此。无论我尝试什么,我只能用我的root键访问API。 (为了避免安全问题,我决定注册一个没有附加信用卡的额外帐户。)
答案 2 :(得分:1)
Amazon Product API DOES 与IAM合作。
我创建了一个IAM用户。它不在一个组中,没有任何角色。我只附上了#34; AdministratorAccess"对它的政策。我在" ItemSearch"中测试了它。和" CartCreate"操作。它运作良好。
您还可以创建新的拒绝策略,以限制用户对byronicM所描述的其他服务的访问权限:https://forums.aws.amazon.com/message.jspa?messageID=289929#289929
答案 3 :(得分:1)
这是在今年早些时候悄悄添加的(documentation)。使用此政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ProductAdvertisingAPI:*",
"Resource": "*"
}
]
}
答案 4 :(得分:0)
在Amazon支持此功能之前,建议您创建单独的完整密钥,并在完成开发后删除它们。因此,第一个生产密钥不会暴露,也不需要更改,这将节省您的时间。