当前位置: 首页 > 知识库问答 >
问题:

如何根据策略将IAM访问APIGateway的权限列入白名单

隗星驰
2023-03-14

我在ApiGateway中启用了一个方法,该方法具有授权类型:AWS_IAM。当我为IAM用户提供一个AccessKey和SecretKey,并在标题中使用编程访问策略时,这就可以工作了,但是这只是预期结果的一半。

是否有办法进一步扩展此授权,以便只允许具有特定API网关方法附加策略的IAM用户?

我最初的想法是在API网关上有一个资源策略来拒绝所有请求,然后将方法访问策略分配给特定IAM用户以覆盖该请求,但根据策略评估逻辑文档,任何具有明确拒绝的资源都会覆盖具有允许的资源。

是否可以将API网关方法仅限于具有方法允许策略(也称为“白名单”)的IAM用户?

共有1个答案

姬熙云
2023-03-14

您可以附加允许用户调用特定api方法的IAM策略。没有调用权限,用户无法调用api终结点。

为了进行测试,我创建了一个没有权限的用户,并收到以下错误。

{
    "Message": "User: arn:aws:iam::********1111:user/test-api-gateway-iam-auth is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:ap-southeast-2:********1111:b2r0m0gev9/test/GET/"
}

我已将以下策略附加到IAM用户。该策略允许用户调用特定的api方法。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "execute-api:Invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:ap-southeast-2:********1111:xxx/test/GET/"
            ]
        }
    ]
}
 类似资料:
  • 使用IAM策略模拟器时,似乎必须提供对完整密钥arn的访问(),而不是别名() 有没有更好的办法来管理这个? 我知道我可以使用密钥策略管理对CMKs的访问,并且不允许从IAM进行访问,但是您不能在KMS密钥策略中使用组作为

  • 我正在尝试为AWS IAM用户设置访问特定AWS SQS队列的用户策略。 当我尝试使用以下策略时,我得到错误AccessDenied。 但是,当我尝试使用相同的策略时,仅将arn的queue_name部分替换为*,它可以工作: 当试图限制对特定队列的访问时,会出现什么问题?

  • 对于小型CloudFormation和CodePipeline模板,我们可以“尝试-测试”以获得所需角色的最低权限IAM策略。 这通常包括: 从最小策略开始 创建堆栈 它失败与-堆栈没有权限的一些服务:一些行动 将服务操作添加到策略 更新堆栈并重试 这种方法对于较大的CloudFormation模板来说太耗时了 您如何制定最低特权IAM策略? 思想: > 允许"*",然后为事件刮取云迹,并为列出的

  • 我使用CarrierWaveDirect将高分辨率图像上传到s3。然后,我使用该图像处理通过Cloudfront URL公开的多个版本。 上传的高分辨率文件需要对匿名用户保持私有,但web应用程序需要访问私有文件才能对其他版本进行处理。 我目前正在通过将所有上传的文件设置为CarrierWave初始值设定项中的private config.fog_public=假 我有一个允许完全管理员访问的we

  • 我对策略变量${aws: username}感到困惑,即它是我在AWS帐户中登录的IAM用户名,还是我在创建实例时手动输入的标记值。 实际上,我想实现ec2实例的唯一所有者应该是执行操作

  • 有没有人遇到过这样的情况:当我对一个用户使用管理策略时,它可以工作,但当我使用内联策略时,它说访问被拒绝。我为IAM用户授予了对bucket读取访问权限,即它只能访问bucket。 我也试过这个