首页 文章

创建API网关的部署权限

提问于
浏览
0

我有一个关于API网关部署的自动化:

aws apigateway create-deployment ...

我试图将我的功能包装在持续部署中,我似乎无法理解IAM权限,它似乎偏离了其他服务的所有其他IAM权限:

  • apigateway:GET

  • apigateway:PUT

  • apigateway:POST

  • apigateway:DELETE

  • apigateway:PATCH

  • apigateway:OPTIONS

Cloudonaut Documentation; "Control Access for Managing an API"

权限似乎只涵盖阶段:

  • arn:aws:apigateway:region::/restapis/*
    适用于区域AWS区域中的所有资源,方法,模型和阶段 .

  • arn:aws:apigateway:region::/restapis/api-id/*
    对于API中的所有资源,方法,模型和阶段,在区域的AWS区域中具有api-id标识符 .

  • arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/*
    对于资源中具有标识符resource-id的所有资源和方法,该标识符位于具有区域的AWS区域中的api-id标识符的API中 .

  • arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/methods/*
    对于资源中具有标识符resource-id的所有方法,该标识符位于具有区域的AWS区域中的api-id标识符的API中 .

  • arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/methods/GET
    仅用于具有标识符resource-id的资源中的GET方法,该标识符位于具有区域的AWS区域中的api-id标识符的API中 .

  • arn:aws:apigateway:region::/restapis/api-id/models/*
    对于API中的所有模型,在区域的AWS区域中具有api-id标识符 .

  • arn:aws:apigateway:region::/restapis/api-id/models/model-name
    对于名称为model-name的模型,该模型位于API中,区域的AWS区域中具有api-id标识符 .

  • arn:aws:apigateway:region::/restapis/api-id/stages/*
    对于API中的所有阶段,在区域的AWS区域中具有api-id的标识符 .

  • arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
    仅适用于API中具有stage-name名称的阶段,其区域的AWS区域中具有api-id的标识符 .

如何授予为给定阶段创建部署的能力? apigateway:PUTapigateway:POST

2 回答

  • 0

    通过测试,我已经阐明了所需的政策:

    {
        "Action": "apigateway:POST",
        "Resource": "arn:aws:apigateway:us-east-1::/restapis/${rest_api_id}/deployments",
        "Effect": "Allow",
        "Sid": "AllowApiGatewayDeployments"
    }
    

    可能无法将部署限制到给定阶段,但我不知道,因为我没有对此进行测试 .

  • 0

    试试这个:

    { "Action": "apigateway:POST", "Resource": "arn:aws:apigateway:*::/restapis/*/stages/${stage_name}", "Effect": "Allow", "Sid": "VisualEditor" }

相关问题