

# 在托管策略与内联策略之间进行选择
<a name="access_policies-choosing-managed-or-inline"></a>

在决定托管式策略和内联策略时，请考虑您的使用案例。在大多数情况下，我们建议使用托管策略而不是内联策略。

**注意**  
您可以同时使用托管式策略和内联策略来定义主体实体的通用权限和唯一权限。

托管策略具备以下功能：

**可重复使用性**  
单个托管策略可以附加到多个主体实体 (用户、组和角色)。您可以创建策略库，在库中定义对您的 AWS 账户 有用的权限，然后根据需要将这些策略附加到主体实体。

**集中变更管理**  
更改托管策略时，更改会应用于策略附加到的所有主体实体。例如，假设要为新的 AWS API 添加权限，则可以通过更新客户管理型策略或关联 AWS 托管式策略来添加权限。如果使用 AWS 托管式策略，则 AWS 会更新该策略。更新托管式策略时，更改会应用于附加了该托管式策略的所有主体实体。相比之下，要更改内联策略，则必须分别编辑包含该策略的每个身份。例如，如果一个组和一个角色都包含同一内联策略，则您必须分别编辑这两个主体实体来更改该策略。

**版本控制和回滚**  
在更改客户托管策略时，更改的策略不会覆盖现有的策略。而是由 IAM 创建新的托管策略版本。IAM 最多可以存储五个版本的客户管理策略。您可以根据需要使用策略版本将策略还原为较早版本。  
策略版本与 `Version` 策略元素不同。`Version` 策略元素用在策略之中，用于定义策略语言的版本。要了解策略版本的更多信息，请参阅[IAM policy 版本控制](access_policies_managed-versioning.md)。要了解 `Version` 策略元素的更多信息，请参阅[IAM JSON 策略元素：Version](reference_policies_elements_version.md)。

**委派权限管理**  
您可以允许您 AWS 账户 中的用户附加和分离策略，同时保持对这些策略中定义的权限的控制。为此，请将一些用户指定为完全管理员，即可以创建、更新和删除策略的管理员。然后，您可以将其他用户指定为受限管理员。这些受限制的管理员可以将策略附加到其他主体实体，但只能附加您允许他们附加的策略。  
有关委派权限管理的更多信息，请参阅[控制对策略的访问](access_controlling.md#access_controlling-policies)。

**上调策略字符数限制**  
托管式策略的最大字符数限制大于组内联策略的字符数限制。如果您已达到内联策略的字符数限制，则可以创建更多 IAM 组并将托管式策略附加到该组。  
有关限额和限制的更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

**AWS 托管策略的自动更新**  
AWS 维护 AWS 托管式策略并在需要时更新它们，例如，针对新 AWS 服务添加权限，您不必进行更改。更新会自动应用于已附加了 AWS 托管策略的主体实体。

## 开始使用托管式策略
<a name="access_policies-get-started-managed-policy"></a>

我们建议使用[授予最低权限](access_policies.md#grant-least-priv)的策略，或仅授予执行任务所需的许可。授予最低权限的最安全方式是编写一个仅具有团队所需权限的客户管理型策略。您必须创建一个流程，以允许您的团队在必要时请求更多权限。创建仅为团队提供所需权限的 [IAM 客户管理型策略](access_policies_create-console.md)需要时间和专业知识。

要开始向您的 IAM 身份（用户、用户组和角色）添加权限，您可以使用 [AWS托管策略](access_policies_managed-vs-inline.md#aws-managed-policies)。AWS托管策略不会授予最低权限。您必须考虑授予您的主体超出其完成工作所需的更多权限所带来的安全风险。

您可以将 AWS 托管策略（包括任务函数）附加到任何 IAM 身份。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

要切换到最低权限，您可以运行 AWS Identity and Access Management and Access Analyzer 以使用 AWS 托管式策略监控主体。了解他们使用的权限后，您可以编写或生成仅包含团队所需权限的客户管理型策略。这中方法不太安全，但您能够以更灵活的方式了解您的团队如何使用 AWS。有关更多信息，请参阅 [IAM Access Analyzer 策略生成](access-analyzer-policy-generation.md)。

AWS 托管策略可用于为很多常用案例提供权限。有关专为特定任务函数制定的 AWS 托管策略的更多信息，请参阅 [工作职能的 AWS 托管策略](access_policies_job-functions.md)。

有关 AWS 托管式策略的列表，请参阅《[AWS 托管式策略参考指南](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html)》。

## 使用内联策略
<a name="policies-using-inline-policies"></a>

如果您要在策略与应用它的身份之间维持严格的一对一关系，则内联策略十分有用。例如，如果您需要确保策略中的权限不会无意中分配给预期身份之外的身份。使用内联策略时，策略中的权限不可能意外分配给错误的身份。此外，当您使用 AWS 管理控制台 删除该身份时，嵌入在身份中的策略也会被删除，因为它们是主体实体的一部分。