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

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

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

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

参考:

Amazon API Gateway Management 定义的操作

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

操作表的资源类型列指示每项操作是否支持资源级权限。如果该列没有任何值,您必须在策略语句的 Resource 元素中指定策略应用的所有资源(“*”)。通过在 IAM policy 中使用条件来筛选访问权限,以控制是否可以在资源或请求中使用特定标签键。如果操作具有一个或多个必需资源,则调用方必须具有使用这些资源来使用该操作的权限。必需资源在表中以星号 (*) 表示。如果您在 IAM policy 中使用 Resource 元素限制资源访问权限,则必须为每种必需的资源类型添加 ARN 或模式。某些操作支持多种资源类型。如果资源类型是可选的(未指示为必需),则可以选择使用一种可选资源类型。

操作表的条件键列包括可以在策略语句的 Condition 元素中指定的键。有关与服务资源关联的条件键的更多信息,请参阅资源类型表的条件键列。

注意

资源条件键在资源类型表中列出。您可以在操作表的资源类型(* 为必需)列中找到应用于某项操作的资源类型的链接。资源类型表中的资源类型包括条件密钥列,这是应用于操作表中操作的资源条件键。

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

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

DomainName

DomainNames

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

ApiKey

Authorizer

BasePathMapping

ClientCertificate

Deployment

DocumentationPart

DocumentationVersion

DomainName

GatewayResponse

Integration

IntegrationResponse

Method

MethodResponse

Model

RequestValidator

Resource

RestApi

Stage

Tags

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

Tags

UsagePlan

UsagePlanKey

UsagePlanKeys

UsagePlans

VpcLink

VpcLinks

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

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 授予创建特定资源的权限 Write

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 授予更新特定资源的权限 Write

DocumentationPart

GatewayResponse

IntegrationResponse

MethodResponse

RestApi

Tags

aws:RequestTag/${TagKey}

aws:TagKeys

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

DomainName

DomainNames

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

Stage

Stages

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

RestApi

RestApis

Amazon API Gateway Management 定义的资源类型

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

资源类型 ARN 条件键
Account arn:${Partition}:apigateway:${Region}::/account
ApiKey arn:${Partition}:apigateway:${Region}::/apikeys/${ApiKeyId}

aws:ResourceTag/${TagKey}

ApiKeys arn:${Partition}:apigateway:${Region}::/apikeys

aws:ResourceTag/${TagKey}

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

apigateway:Request/AuthorizerType

apigateway:Request/AuthorizerUri

apigateway:Resource/AuthorizerType

apigateway:Resource/AuthorizerUri

aws:ResourceTag/${TagKey}

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

apigateway:Request/AuthorizerType

apigateway:Request/AuthorizerUri

aws:ResourceTag/${TagKey}

BasePathMapping arn:${Partition}:apigateway:${Region}::/domainnames/${DomainName}/basepathmappings/${BasePath}

aws:ResourceTag/${TagKey}

BasePathMappings arn:${Partition}:apigateway:${Region}::/domainnames/${DomainName}/basepathmappings

aws:ResourceTag/${TagKey}

ClientCertificate arn:${Partition}:apigateway:${Region}::/clientcertificates/${ClientCertificateId}

aws:ResourceTag/${TagKey}

ClientCertificates arn:${Partition}:apigateway:${Region}::/clientcertificates

aws:ResourceTag/${TagKey}

Deployment arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/deployments/${DeploymentId}

aws:ResourceTag/${TagKey}

Deployments arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/deployments

apigateway:Request/StageName

DocumentationPart arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/documentation/parts/${DocumentationPartId}

aws:ResourceTag/${TagKey}

DocumentationParts arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/documentation/parts

aws:ResourceTag/${TagKey}

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

aws:ResourceTag/${TagKey}

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

apigateway:Request/EndpointType

apigateway:Request/MtlsTrustStoreUri

apigateway:Request/MtlsTrustStoreVersion

apigateway:Request/SecurityPolicy

aws:ResourceTag/${TagKey}

GatewayResponse arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/gatewayresponses/${ResponseType}

aws:ResourceTag/${TagKey}

GatewayResponses arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/gatewayresponses

aws:ResourceTag/${TagKey}

Integration arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/${ResourceId}/methods/${HttpMethodType}/integration

aws:ResourceTag/${TagKey}

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

aws:ResourceTag/${TagKey}

MethodResponse arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources/${ResourceId}/methods/${HttpMethodType}/responses/${StatusCode}
Model arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/models/${ModelName}

aws:ResourceTag/${TagKey}

Models arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/models

aws:ResourceTag/${TagKey}

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}

aws:ResourceTag/${TagKey}

Resources arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/resources

aws:ResourceTag/${TagKey}

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

aws:ResourceTag/${TagKey}

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

aws:ResourceTag/${TagKey}

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

aws:ResourceTag/${TagKey}

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

apigateway:Request/AccessLoggingDestination

apigateway:Request/AccessLoggingFormat

aws:ResourceTag/${TagKey}

Template arn:${Partition}:apigateway:${Region}::/restapis/models/${ModelName}/template
UsagePlan arn:${Partition}:apigateway:${Region}::/usageplans/${UsagePlanId}

aws:ResourceTag/${TagKey}

UsagePlans arn:${Partition}:apigateway:${Region}::/usageplans

aws:ResourceTag/${TagKey}

UsagePlanKey arn:${Partition}:apigateway:${Region}::/usageplans/${UsagePlanId}/keys/${Id}
UsagePlanKeys arn:${Partition}:apigateway:${Region}::/usageplans/${UsagePlanId}/keys
arn:${Partition}:apigateway:${Region}::/vpclinks/${VpcLinkId}

aws:ResourceTag/${TagKey}

arn:${Partition}:apigateway:${Region}::/vpclinks

aws:ResourceTag/${TagKey}

Tags arn:${Partition}:apigateway:${Region}::/tags/${UrlEncodedResourceARN}

Amazon API Gateway Management 的条件键

Amazon API Gateway Management 定义以下可以在 IAM policy 的 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 按请求中的标签键筛选访问权限 字符串数组