

# 在 Lambda 中使用基于属性的访问控制
<a name="attribute-based-access-control"></a>

借助[基于属性的访问权限控制（ABAC）](https://docs.amazonaws.cn/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)，您可以使用标签来控制对 Lambda 资源的访问。您可以将标签附加到某些 Lambda 资源，附加到某些 API 请求，或附加到发出请求的 Amazon Identity and Access Management（IAM）主体。有关 Amazon 如何授予基于属性的访问权限的更多信息，请参阅《*IAM 用户指南*》中的[使用标签控制对 Amazon 资源的访问](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_tags.html)。

您可以使用 ABAC [授予最低权限](https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)，而无需在 IAM policy 中指定 Amazon 资源名称 (ARN) 或 ARN 模式。相反，您可以在 IAM policy 的[条件元素](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_elements_condition.html)中指定一个标签来控制访问。使用 ABAC 可以更轻松地进行扩展，因为您无需在创建新资源时更新 IAM 策略。相反，将标签添加到新资源即可控制访问权限。

在 Lambda 中，标签可用于以下资源：
+ 函数 – 有关标记函数的更多信息，请参阅[在 Lambda 函数上使用标签](configuration-tags.md)。
+ 代码签名配置 – 有关标记代码签名配置的更多信息，请参阅[在代码签名配置上使用标签](tags-csc.md)。
+ 事件源映射 – 有关标记事件源映射的更多信息，请参阅[在事件源映射上使用标签](tags-esm.md)。

层不支持标签。

可以使用以下条件键根据标签编写 IAM 策略规则：
+ [aws:ResourceTag/tag-key](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag)：根据附加到 Lambda 资源的标签控制访问权限。
+ [aws:RequestTag/tag-key](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag)：要求请求中存在标签，例如在创建新函数时。
+ [aws:PrincipalTag/tag-key](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag)：根据附加到其 IAM [用户](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_tags_users.html)或[角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_tags_roles.html)的标签，控制允许 IAM 主体（发出请求的人）执行的操作。
+  [aws:TagKeys](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)：控制是否可以在请求中使用特定的标签键。

 只能为支持这些条件的操作指定条件。有关各 Lambda 操作支持的条件列表，请参阅《Service Authorization Reference》中的 [Actions, resources, and condition keys for Amazon Lambda](https://docs.amazonaws.cn//service-authorization/latest/reference/list_awslambda.html)。有关 **aws:ResourceTag/tag-key** 支持，请参阅该文档中的“Resource types defined by Amazon Lambda”。有关 **aws:RequestTag/tag-key** 和 **aws:TagKeys** 支持，同样请参阅该文档中的“Actions defined by Amazon Lambda”。

**Topics**
+ [通过标签保护函数](attribute-based-access-control-example.md)