是否可以通过IAM生成AWS访问密钥以与Product Advertising API一起使用?

时间:2012-03-13 17:51:49

标签: api amazon-web-services amazon-product-api amazon-iam

我喜欢使用IAM(身份和访问管理)来创建具有特定用途的特定权限的用户/组。

产品广告API需要使用访问密钥(请求参数为AWSAccessKeyId),IAM可以生成访问密钥,但我没有办法让IAM用户/组只能访问 产品广告API。

任何人都知道这是否可以做到?或者你知道一个解决方法吗?

5 个答案:

答案 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支持此功能之前,建议您创建单独的完整密钥,并在完成开发后删除它们。因此,第一个生产密钥不会暴露,也不需要更改,这将节省您的时间。