

# 在 API Gateway 中控制和管理对 REST API 的访问
<a name="apigateway-control-access-to-api"></a>

API Gateway 支持多种用于控制和管理对 API 的访问的机制：

您可以使用以下机制进行身份验证和授权：
+ **资源策略**允许您创建基于资源的策略，以允许或拒绝从指定的源 IP 地址或 VPC 终端节点访问您的 API 和方法。有关更多信息，请参阅 [使用 API Gateway 资源策略控制对 API 的访问](apigateway-resource-policies.md)。
+ **标准的AWS IAM 角色和策略**提供可应用于整个 API 集或各个方法的灵活且可靠的访问控制。可以使用 IAM 角色和策略来控制哪些人可以创建和管理您的 API，以及谁可以调用它们。有关更多信息，请参阅 [使用 IAM 权限控制对 REST API 的访问](permissions.md)。
+ **IAM 标签** 可与 IAM 策略结合使用来控制访问权限。有关更多信息，请参阅 [使用标签控制对 API Gateway REST API 资源的访问](apigateway-tagging-iam-policy.md)。
+ **接口 VPC 终端节点的终端节点策略**允许您将 IAM 资源策略附加到接口 VPC 终端节点，用于改进[私有 API](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html) 的安全性。有关更多信息，请参阅 [在 API Gateway 中为私有 API 使用 VPC 端点策略](apigateway-vpc-endpoint-policies.md)。
+ **Lambda 授权方** 是 Lambda 函数，它们使用持有者令牌身份验证以及由标头、路径、查询字符串、阶段变量或上下文变量请求参数描述的信息来控制对 REST API 方法的访问。Lambda 授权方用于控制谁可以调用 REST API 方法。有关更多信息，请参阅 [使用 API Gateway Lambda 授权方](apigateway-use-lambda-authorizer.md)。
+ **Amazon Cognito 用户池** 可让您为 REST API 创建可自定义的身份验证和授权解决方案。Amazon Cognito 用户池用于控制谁可以调用 REST API 方法。有关更多信息，请参阅 [使用 Amazon Cognito 用户池作为授权方控制对 REST API 的访问](apigateway-integrate-with-cognito.md)。

您可以使用以下机制执行与访问控制相关的其他任务：
+ **跨源资源共享 (CORS)** 可让您控制您的 REST API 响应跨域资源请求的方式。有关更多信息，请参阅 [针对 API Gateway 中的 REST API 的 CORS](how-to-cors.md)。
+ **客户端 SSL 证书** 可用于验证发送到后端系统的 HTTP 请求是否来自 API Gateway。有关更多信息，请参阅 [生成和配置 SSL 证书以用于 API Gateway 中的后端身份验证](getting-started-client-side-ssl-authentication.md)。
+ **AWS WAF** 可用于保护您的 API Gateway API 免受常见 Web 漏洞攻击。有关更多信息，请参阅 [在 API Gateway 中使用 AWS WAF 保护 REST API](apigateway-control-access-aws-waf.md)。

您可以使用以下机制跟踪和限制您已向授权客户端授予的访问权限：
+ **使用计划** 可让您向客户提供 **API 密钥**，然后跟踪和限制每个 API 密钥的 API 阶段和方法的使用。有关更多信息，请参阅 [API Gateway 中针对 REST API 的使用计划和 API 密钥](api-gateway-api-usage-plans.md)。