是否可以通过IAM生成AWS访问密钥,以便与产品广告API一起使用



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

产品广告API要求使用访问密钥(请求参数为AWSAccessKeyId),IAM可以生成访问密钥,但我看不出有什么方法可以让IAM用户/组仅访问产品广告API。

有人知道这能不能做到吗?或者你知道变通办法吗?

更新

阅读上面提到的亚马逊产品API的IAM政策完全表明,提问者实际上试图做到这一点,即使用IAM访问密钥访问产品广告API,但显然没有效果。因此,我担心提到的AWS团队的回应必须从字面上理解,不幸的是,IAM还没有涵盖您的用例。


初步答复

AWS身份和访问管理(IAM)目前不支持产品广告API(请参阅AWS团队对亚马逊产品API IAM政策的回应),但假设IAM访问密钥也在那里工作,您可以至少通过相应的IAM政策(应涵盖大多数关键政策)拒绝您的用户/组访问支持IAM的其他AWS服务。推荐的AWS策略生成器可以帮助制定相应的策略,实际上可能就这么简单(我刚刚选择了效果->拒绝并选中AWS服务->所有服务复选框):

{
  "Statement": [
    {
      "Sid": "Stmt1331670627168",
      "Action": "*",
      "Effect": "Deny",
      "Resource": "*"
    }
  ]
}

由于亚马逊产品API尚未包含在IAM策略中,因此可以预期,由于默认情况是拒绝,因此用户无需附加任何策略就足够了。(换句话说,对于此类用户,除了不受IAM保护的产品API外,所有内容都将被拒绝。)

但事实并非如此。无论我尝试了什么,我只能用根密钥访问API。(为了避免安全隐患,我决定注册一个没有信用卡的额外账户。)

亚马逊产品API使用IAM。

我创建了IAM用户。它不在一个组中,也没有任何角色。我只附加了"AdministratorAccess"策略。我在"ItemSearch"one_answers"CartCreate"操作中测试了它。它运行得很好。

您还可以创建一个新的拒绝策略,以限制用户访问byronicM在此处描述的其他服务:https://forums.aws.amazon.com/message.jspa?messageID=289929#289929

这是今年早些时候悄悄添加的(文档)。使用此策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ProductAdvertisingAPI:*",
            "Resource": "*"
        }
    ]
}

在亚马逊支持之前,建议您创建一个单独的完整密钥,并在开发完成后将其删除。所以,第一个生产密钥不会暴露,也不需要更改,这将节省您的时间。

相关内容

  • 没有找到相关文章

最新更新