Amazon API Gateway Management 的操作、资源和条件键 - 服务授权参考
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon API Gateway Management 的操作、资源和条件键

Amazon API Gateway Management(服务前缀:apigateway)提供以下服务特定的资源、操作和条件上下文键以在 IAM 权限策略中使用。

参考:

Amazon API Gateway Management 定义的操作

您可以在 Action 策略语句的 IAM 元素中指定以下操作。可以使用策略授予在 AWS 中执行操作的权限。您在策略中使用一项操作时,通常使用相同的名称允许或拒绝对 API 操作或 CLI 命令的访问。但在某些情况下,单一动作可控制对多项操作的访问。还有某些操作需要多种不同的动作。

资源类型列指示每项操作是否支持资源级权限。如果该列没有任何值,您必须在策略语句的 Resource 元素中指定所有资源(“*”)。如果该列包含一种资源类型,则可以在含有该操作的语句中指定该类型的 ARN。必需资源在表中以星号 (*) 表示。如果在使用该操作的语句中指定资源级权限 ARN,则它必须属于该类型。某些操作支持多种资源类型。如果资源类型是可选的(未指示为必需),则可以选择使用一种类型而不使用其他类型。

有关下表中各列的详细信息,请参阅 操作表

操作 描述 访问级别 资源类型(* 为必需) 条件键 相关操作
AddCertificateToDomain 授予向域名添加双向 TLS 身份验证证书的权限。由于双向 TLS的敏感性,这是对管理 DomainName 资源进行的额外授权控制 权限管理

DomainName

DomainNames

DELETE 授予删除特定资源的权限 写入

ApiKey

Authorizer

BasePathMapping

ClientCertificate

Deployment

DocumentationPart

DocumentationVersion

DomainName

GatewayResponse

Integration

IntegrationResponse

Method

MethodResponse

Model

RequestValidator

Resource

RestApi

Stage

Template

UsagePlan

UsagePlanKey

VpcLink

aws:RequestTag/${TagKey}

aws:TagKeys

GET 授予读取特定资源的权限 Read

Account

ApiKey

ApiKeys

Authorizer

Authorizers

BasePathMapping

BasePathMappings

ClientCertificate

ClientCertificates

Deployment

Deployments

DocumentationPart

DocumentationParts

DocumentationVersion

DocumentationVersions

DomainName

DomainNames

GatewayResponse

GatewayResponses

Integration

IntegrationResponse

Method

MethodResponse

Model

Models

RequestValidator

RequestValidators

Resource

Resources

RestApi

RestApis

Sdk

Stage

Stages

UsagePlan

UsagePlanKey

UsagePlanKeys

UsagePlans

VpcLink

VpcLinks

PATCH 授予更新特定资源的权限 写入

Account

ApiKey

Authorizer

BasePathMapping

ClientCertificate

Deployment

DocumentationPart

DocumentationVersion

DomainName

GatewayResponse

Integration

IntegrationResponse

Method

MethodResponse

Model

RequestValidator

Resource

RestApi

Stage

Template

UsagePlan

UsagePlanKey

VpcLink

aws:RequestTag/${TagKey}

aws:TagKeys

POST 授予创建特定资源的权限 写入

ApiKeys

Authorizers

BasePathMappings

ClientCertificates

Deployments

DocumentationParts

DocumentationVersions

DomainNames

GatewayResponses

IntegrationResponse

MethodResponse

Models

RequestValidators

Resources

RestApis

Stages

UsagePlanKeys

UsagePlans

VpcLinks

aws:RequestTag/${TagKey}

aws:TagKeys

PUT 授予更新特定资源的权限 写入

DocumentationPart

GatewayResponse

IntegrationResponse

MethodResponse

RestApi

aws:RequestTag/${TagKey}

aws:TagKeys

RemoveCertificateFromDomain 授予从域名中删除双向 TLS 身份验证证书的权限。由于双向 TLS 的敏感性,这是对管理 DomainName 资源进行的额外授权控制 权限管理

DomainName

DomainNames

SetWebACL 授予权限集 WAF 访问控制列表 (ACL)。由于 WebACL 的敏感性,这是对管理 Stage 资源进行的额外授权控制 权限管理

Stage

Stages

UpdateRestApiPolicy 授予为 API 管理 IAM 资源策略的权限。由于资源策略的敏感性,这是对管理 API 进行的额外授权控制 权限管理

RestApi

RestApis

Amazon API Gateway Management 定义的资源类型

以下资源类型是由该服务定义的,可以在 IAM 权限策略语句的 Resource 元素中使用这些资源类型。操作表中的每个操作指定了可以使用该操作指定的资源类型。您也可以在策略中包含条件键,从而定义资源类型。这些键显示在表的最后一列。有关下表中各列的详细信息,请参阅 资源类型表

资源类型 ARN 条件键
Account arn:${Partition}:apigateway:${Region}::/account/
ApiKey arn:${Partition}:apigateway:${Region}::/apikeys/${ApiKeyId}/
ApiKeys arn:${Partition}:apigateway:${Region}::/apikeys/
Authorizer arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/authorizers/${AuthorizerId}/

apigateway:Request/AuthorizerType

apigateway:Request/AuthorizerUri

apigateway:Resource/AuthorizerType

apigateway:Resource/AuthorizerUri

Authorizers arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/authorizers/

apigateway:Request/AuthorizerType

apigateway:Request/AuthorizerUri

BasePathMapping arn:${Partition}:apigateway:${Region}::/domainnames/${DomainName}/basepathmappings/${BasePath}/
BasePathMappings arn:${Partition}:apigateway:${Region}::/domainnames/${DomainName}/basepathmappings/
ClientCertificate arn:${Partition}:apigateway:${Region}::/clientcertificates/${ClientCertificateId}/
ClientCertificates arn:${Partition}:apigateway:${Region}::/clientcertificates/
Deployment arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/deployments/${DeploymentId}/
Deployments arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/deployments/

apigateway:Request/StageName

DocumentationPart arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/documentation/parts/${DocumentationPartId}/
DocumentationParts arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/documentation/parts/
DocumentationVersion arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/documentation/versions/${DocumentationVersionId}/
DocumentationVersions arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/documentation/versions/
DomainName arn:${Partition}:apigateway:${Region}::/domainnames/${DomainName}/

apigateway:Request/EndpointType

apigateway:Request/MtlsTrustStoreUri

apigateway:Request/MtlsTrustStoreVersion

apigateway:Request/SecurityPolicy

apigateway:Resource/EndpointType

apigateway:Resource/MtlsTrustStoreUri

apigateway:Resource/MtlsTrustStoreVersion

apigateway:Resource/SecurityPolicy

DomainNames arn:${Partition}:apigateway:${Region}::/domainnames/

apigateway:Request/EndpointType

apigateway:Request/MtlsTrustStoreUri

apigateway:Request/MtlsTrustStoreVersion

apigateway:Request/SecurityPolicy

GatewayResponse arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/gatewayresponses/${ResponseType}/
GatewayResponses arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/gatewayresponses/
Integration arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/${ResourceId}/methods/${HttpMethodType}/integration/
IntegrationResponse arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/${ResourceId}/methods/${HttpMethodType}/integration/responses/${StatusCode}/
Method arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/${ResourceId}/methods/${HttpMethodType}/

apigateway:Request/ApiKeyRequired

apigateway:Request/RouteAuthorizationType

apigateway:Resource/ApiKeyRequired

apigateway:Resource/RouteAuthorizationType

MethodResponse arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/${ResourceId}/methods/${HttpMethodType}/responses/${StatusCode}/
Model arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/models/${ModelName}/
Models arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/models/
RequestValidator arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/requestvalidators/${RequestValidatorId}/
RequestValidators arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/requestvalidators/
Resource arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/${ResourceId}/
Resources arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/
RestApi arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/

apigateway:Request/ApiKeyRequired

apigateway:Request/ApiName

apigateway:Request/AuthorizerType

apigateway:Request/AuthorizerUri

apigateway:Request/DisableExecuteApiEndpoint

apigateway:Request/EndpointType

apigateway:Request/RouteAuthorizationType

apigateway:Resource/ApiKeyRequired

apigateway:Resource/ApiName

apigateway:Resource/AuthorizerType

apigateway:Resource/AuthorizerUri

apigateway:Resource/DisableExecuteApiEndpoint

apigateway:Resource/EndpointType

apigateway:Resource/RouteAuthorizationType

RestApis arn:${Partition}:apigateway:${Region}::/restapis/

apigateway:Request/ApiKeyRequired

apigateway:Request/ApiName

apigateway:Request/AuthorizerType

apigateway:Request/AuthorizerUri

apigateway:Request/DisableExecuteApiEndpoint

apigateway:Request/EndpointType

apigateway:Request/RouteAuthorizationType

Sdk arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/stages/${StageName}/sdks/${SdkType}/
Stage arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/stages/${StageName}/

apigateway:Request/AccessLoggingDestination

apigateway:Request/AccessLoggingFormat

apigateway:Resource/AccessLoggingDestination

apigateway:Resource/AccessLoggingFormat

Stages arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/stages/

apigateway:Request/AccessLoggingDestination

apigateway:Request/AccessLoggingFormat

Template arn:${Partition}:apigateway:${Region}::/restapis/models/${ModelName}/template/
UsagePlan arn:${Partition}:apigateway:${Region}::/usageplans/${UsagePlanId}/
UsagePlans arn:${Partition}:apigateway:${Region}::/usageplans/
UsagePlanKey arn:${Partition}:apigateway:${Region}::/usageplans/${UsagePlanId}/keys/${Id}/
UsagePlanKeys arn:${Partition}:apigateway:${Region}::/usageplans/${UsagePlanId}/keys/
VpcLink arn:${Partition}:apigateway:${Region}::/vpclinks/${VpcLinkId}/
VpcLinks arn:${Partition}:apigateway:${Region}::/vpclinks/

Amazon API Gateway Management 的条件键

Amazon API Gateway Management 定义以下可以在 IAM 策略的 Condition 元素中使用的条件键。您可以使用这些键进一步细化应用策略语句的条件。有关下表中各列的详细信息,请参阅 条件键表

要查看适用于所有服务的全局条件键,请参阅可用的全局条件键

条件键 描述 类型
apigateway:Request/AccessLoggingDestination 按访问日志目标筛选访问权限。在 CreateStage 和 UpdateStage 操作期间可用 字符串
apigateway:Request/AccessLoggingFormat 按访问日志格式筛选访问权限。在 CreateStage 和 UpdateStage 操作期间可用 字符串
apigateway:Request/ApiKeyRequired 根据是否需要 API 密钥来筛选访问权限。在 CreateMethod 和 PutMethod 操作期间可用。在导入和重新导入期间也可作为集合使用 ArrayOfBool
apigateway:Request/ApiName 按 API 名称筛选访问权限。在 CreateRestApi 和 UpdateRestApi 操作期间可用 字符串
apigateway:Request/AuthorizerType 按请求中的授权者类型筛选访问权限,例如 TOKEN、REQUEST、JWT。在 CreateAuthorizer 和 UpdateAuthorizer 期间可用。在导入和重新导入期间也可作为字符串数组 字符串数组
apigateway:Request/AuthorizerUri 按 Lambda 授权者函数的 URI 筛选访问权限。在 CreateAuthorizer 和 UpdateAuthorizer 期间可用。在导入和重新导入期间也可作为字符串数组 字符串数组
apigateway:Request/DisableExecuteApiEndpoint 按默认 execute-api 终端节点的状态筛选访问权限。在 CreateRestApi 和 DeleteRestApi 操作期间可用 Bool
apigateway:Request/EndpointType 按终端节点类型筛选访问权限。在 CreateDomainName、UpdateDomainName、CreateRestApi 和 UpdateRestApi 操作期间可用 字符串数组
apigateway:Request/MtlsTrustStoreUri 按用于双向 TLS 身份验证的 truststore 的 URI 筛选访问权限。在 CreateDomainName 和 UpdateDomainName 操作期间可用 字符串
apigateway:Request/MtlsTrustStoreVersion 按用于双向 TLS 身份验证的 truststore 的版本筛选访问权限。在 CreateDomainName 和 UpdateDomainName 操作期间可用 字符串
apigateway:Request/RouteAuthorizationType 按授权类型筛选访问权限,例如 NONE、AWS_IAM、CUSTOM、JWT、COGNITO_USER_POOLS。在 CreateMethod 和 PutMethod 操作期间可用 在导入期间也可作为集合使用 字符串数组
apigateway:Request/SecurityPolicy 按 TLS 版本筛选访问权限。在 CreateDomain 和 UpdateDomain 操作期间可用 字符串数组
apigateway:Request/StageName 按您尝试创建的部署的阶段名称筛选访问权限。在 CreateDeployment 操作期间可用 字符串
apigateway:Resource/AccessLoggingDestination 按当前 Stage 资源的访问日志目标筛选访问权限。在 UpdateStage 和 DeleteStage 操作期间可用 字符串
apigateway:Resource/AccessLoggingFormat 按当前 Stage 资源的访问日志格式筛选访问权限。在 UpdateStage 和 DeleteStage 操作期间可用 字符串
apigateway:Resource/ApiKeyRequired 根据现有 Method 资源是否需要 API 密钥来筛选访问权限。在 PutMethod 和 DeleteMethod 操作期间可用。在重新导入期间也可作为集合使用 ArrayOfBool
apigateway:Resource/ApiName 按现有 RestApi 资源的 API 名称筛选访问权限。在 UpdateRestApi 和 DeleteRestApi 操作期间可用 字符串
apigateway:Resource/AuthorizerType 按授权者的当前类型筛选访问权限,例如 TOKEN、REQUEST、JWT。在 UpdateAuthorizer 和 DeleteAuthorizer 操作期间可用。在重新导入期间也可作为 ArrayOfString 字符串数组
apigateway:Resource/AuthorizerUri 按 Lambda 授权者函数的 URI 筛选访问权限。在 UpdateAuthorizer 和 DeleteAuthorizer 操作期间可用。在重新导入期间也可作为 ArrayOfString 字符串数组
apigateway:Resource/DisableExecuteApiEndpoint 按当前 RestApi 资源的默认 execute-api 终端节点的状态筛选访问权限。在 UpdateRestApi 和 DeleteRestApi 操作期间可用 Bool
apigateway:Resource/EndpointType 按终端节点类型筛选访问权限。在 UpdateDomainName、DeleteDomainName、UpdateRestApi 和 DeleteRestApi 操作期间可用 字符串数组
apigateway:Resource/MtlsTrustStoreUri 按用于双向 TLS 身份验证的 truststore 的 URI 筛选访问权限。在 UpdateDomainName 和 DeleteDomainName 操作期间可用 字符串
apigateway:Resource/MtlsTrustStoreVersion 按用于双向 TLS 身份验证的 truststore 的版本筛选访问权限。在 UpdateDomainName 和 DeleteDomainName 操作期间可用 字符串
apigateway:Resource/RouteAuthorizationType 按现有 Method 资源的授权类型筛选访问权限,例如 NONE、AWS_IAM、CUSTOM、JWT、COGNITO_USER_POOLS。在 PutMethod 和 DeleteMethod 操作期间可用。在重新导入期间也可作为集合使用 字符串数组
apigateway:Resource/SecurityPolicy 按 TLS 版本筛选访问权限。在 UpdateDomain 和 DeleteDomain 操作期间可用 字符串数组
aws:RequestTag/${TagKey} 根据在请求中是否具有标签键值对以筛选操作 字符串
aws:ResourceTag/${TagKey} 根据附加到资源的标签键值对筛选操作 字符串
aws:TagKeys 根据在请求中是否具有标签键以筛选操作 字符串