我喜欢使用 IAM(身份和访问管理)为特定目的创建具有特定权限的用户/组。
产品广告 API 需要使用访问密钥(请求参数是AWSAccessKeyId)并且 IAM 可以生成访问密钥,但我没有看到让 IAM 用户/组仅访问产品广告 API 的方法。
有人知道这是否可以做到吗?或者您知道解决方法吗?
我喜欢使用 IAM(身份和访问管理)为特定目的创建具有特定权限的用户/组。
产品广告 API 需要使用访问密钥(请求参数是AWSAccessKeyId)并且 IAM 可以生成访问密钥,但我没有看到让 IAM 用户/组仅访问产品广告 API 的方法。
有人知道这是否可以做到吗?或者您知道解决方法吗?
阅读提到的亚马逊产品 API的线程IAM 策略完全表明,提问者实际上试图这样做,即使用 IAM 访问密钥来访问产品广告 API,但显然无济于事。因此,恐怕必须从字面上理解所提到的AWS 团队的响应,不幸的是,IAM 尚未涵盖您的用例。
AWS Identity and Access Management (IAM)目前不支持Product Advertising API(请参阅 AWS 团队对 Amazon Product API 的 IAM 政策的回应),但假设 IAM 访问密钥也在那里工作,您可以拒绝您的用户/组至少通过相应的IAM 策略访问支持 IAM 的所有其他AWS 服务(应该涵盖大多数关键策略)。推荐的AWS 策略生成器可以帮助制定相应的策略,实际上可能就这么简单(我刚刚选择了效果 -> 拒绝并选中了AWS 服务 -> 所有服务复选框):
{
"Statement": [
{
"Sid": "Stmt1331670627168",
"Action": "*",
"Effect": "Deny",
"Resource": "*"
}
]
}
由于IAM 策略尚未涵盖Amazon 产品 API ,因此可以预期拥有一个没有附加任何策略的用户就足够了,因为默认设置是拒绝。(换句话说,对于此类用户,除了不受 IAM 保护的产品 API 之外,所有内容都将被拒绝。)
但事实并非如此。无论我尝试什么,我都只能使用我的根密钥访问 API。(为了避免安全隐患,我决定注册一个没有附加信用卡的额外帐户。)
亚马逊产品 API可以与IAM一起使用。
我创建了一个 IAM 用户。它不在一个组中,也没有角色。我只附加了“AdministratorAccess”策略。我在“ItemSearch”和“CartCreate”操作中对其进行了测试。它工作得很好。
您还可以创建一个新的拒绝策略来限制用户访问其他服务,如 byronicM 所述:https ://forums.aws.amazon.com/message.jspa?messageID=289929#289929
This was quietly added earlier this year (documentation). Use this policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ProductAdvertisingAPI:*",
"Resource": "*"
}
]
}
在 Amazon 支持之前,建议您创建一个单独的完整密钥,然后在完成开发后将其删除。因此,第一个生产密钥不会暴露,也不需要更改,这将节省您的时间。