我对AWS API Gateway有疑问。
我创建了自己的API,现在我希望与我在同一组中并具有相同角色的其他用户通过AWS管理控制台访问此API。
问题是其他用户无法看到我创建的API(Lambda函数和DynamoDB的问题也是如此,这对我来说也是可见的,而不是组中的其他用户)。
答案 0 :(得分:1)
一个简单但不太安全的解决方案是将AmazonAPIGatewayAdministrator策略分配给您希望能够使用API网关的IAM用户,组或角色。这将使他们能够访问所有API。
如果要限制对特定API或API集的访问,可以为该API创建自定义IAM策略。然后,您将该策略分配给您希望有权访问API的角色和组。要创建策略,您需要API的ID。这是一个漫长而复杂的过程,但它确实有效。以下是步骤:
通过选择API网关服务并单击API,确定要提供访问权限的API的ID。浏览器中的URL如下所示:
https://console.aws.amazon.com/apigateway/home?region=us-east-1#/apis/API_ID/resources/RESOURCE_ID
将API_ID
复制到剪贴板以供日后使用。
aws apigateway get-rest-apis
并从结果中复制ID。像这样创建一个新的IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"apigateway:GET"
],
"Resource": [
"arn:aws:apigateway:*::/clientcertificates",
"arn:aws:apigateway:*::/restapis",
"arn:aws:apigateway:*::/restapis/*"
]
},
{
"Effect": "Allow",
"Action": [
"apigateway:*"
],
"Resource": [
"arn:aws:apigateway:us-east-1::/restapis/API_ID/*"
]
}
]
}
将策略附加到您想要访问的用户/组/角色。第一个Effect
允许用户查看所有API但不修改它们。如果您想要更具限制性,可能需要删除它。
Amazon在这里对API网关的IAM策略进行了大量的详细介绍:http://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html