
# IAM的安全使用最佳实践
为了帮助您安全地控制对华为云资源的访问，请您遵循安全使用IAM的建议。
#### 不给华为账号创建访问密钥
华为账号是您华为云资源归属、资源使用计费的主体，对其所拥有的资源及云服务具有完全的访问权限。密码与访问密钥（AK/SK）都是账号的身份凭证，具有同等效力，密码用于登录界面控制台，是您必须具备的身份凭证，访问密钥用于使用开发工具进行编程调用，是第二个身份凭证，为辅助性质，非必须具备。为了提高账号安全性，建议您仅使用密码登录控制台即可，不要给账号创建第二个身份凭证（访问密钥），避免因访问密钥泄露带来的信息安全风险。
#### 不将访问密钥嵌入到代码中
当您使用API、CLI、SDK等开发工具来访问云服务时，请勿直接将访问密钥嵌入到代码中，减少访问密钥被泄露的风险。
#### 创建单独的IAM用户
如果有任何人需要访问您华为账号中的资源，请不要将账号的密码共享给他们，而是在您的账号中给他们创建单独的IAM用户并分配相应的权限，同时，作为华为账号主体，建议您不使用账号访问华为云，而是为自己创建一个IAM用户，并授予该用户管理权限，以使用该IAM用户代替账号进行日常管理工作，保护账号的安全。
#### 合理设置访问方式
IAM支持为用户设置编程访问、管理控制台访问方式，请参考如下说明为IAM用户设置访问方式：
- 如果IAM用户仅需登录管理控制台访问云服务，建议访问方式选择管理控制台访问，凭证类型为密码。
- 如果IAM用户仅需编程访问华为云服务，建议访问方式选择编程访问，凭证类型为访问密钥。
- 如果IAM用户需要使用密码作为编程访问的凭证（部分API要求），建议访问方式选择编程访问，凭证类型为密码。
- 如果IAM用户使用部分云服务时，需要在其控制台验证访问密钥（由IAM用户输入），建议访问方式选择编程访问和管理控制台访问，凭证类型为密码和访问密钥。例如IAM用户在控制台使用云数据迁移CDM服务创建数据迁移，需要通过访问密钥进行身份验证。
 
#### 授予最小权限
最小权限原则是标准的安全建议，您可以使用IAM提供的系统权限，或者自己创建自定义策略，给账号中的用户仅授予刚好能完成工作所需的权限，通过最小权限原则，可以帮助您安全地控制用户对华为云资源的访问。
同时，建议为使用API、CLI、SDK等开发工具访问云服务的IAM用户，授予自定义策略，通过精细的权限控制，减少因访问密钥泄露对您的账号造成的影响。
#### 开启虚拟MFA功能
Multi-Factor Authentication (简称MFA) 是一种非常简单的安全实践方法，建议您给华为账号以及您账号中具备较高权限的用户开启MFA功能，它能够在用户名和密码之外再额外增加一层保护。启用MFA后，用户登录控制台时，系统将要求用户输入用户名和密码（第一安全要素），以及来自其MFA设备的验证码（第二安全要素）。这些多重要素结合起来将为您的账户和资源提供更高的安全保护。
MFA设备可以基于硬件也可以基于软件，系统目前仅支持基于软件的虚拟MFA，虚拟MFA是能产生6位数字认证码的应用程序，此类应用程序可在移动硬件设备（包括智能手机）上运行，非常方便。
#### 设置强密码策略
在IAM控制台设置强密码策略，例如密码最小长度、密码中同一字符连续出现的最大次数、密码不能与历史密码相同，保证用户使用复杂程度高的强密码。
#### 设置敏感操作
设置敏感操作后，如果您或者您账号中的用户进行敏感操作时，例如删除资源、生成访问密钥等，需要输入验证码进行验证，避免误操作带来的风险和损失。
#### 定期修改身份凭证
如果您不知道自己的密码或访问密钥已泄露，定期进行修改可以将不小心泄露的风险降至最低。
- 定期轮换密码可以通过设置密码有效期策略进行，您以及您账号中的用户在设置的时间内必须修改密码，否则密码将会失效，IAM会在密码到期前15天开始提示用户修改密码。
- 轮换访问密钥可以通过创建两个访问密钥进行，将两个访问密钥作为一主一备，一开始先使用主访问密钥一，一段时间后，使用备访问密钥二，然后在控制台删除主访问密钥一，并重新生成一个访问密钥，在您的应用程序中定期轮换使用。
 
#### 删除不需要的身份凭证
对于仅需要登录控制台的IAM用户，不需要使用访问密钥，请不要给他们创建，或者及时删除访问密钥。您还可以通过账号中IAM用户的"最近一次登录时间"，来判断该用户的凭证是否已经属于不需要的范畴，对于长期未登录的用户，请及时修改他们的身份凭证，包括修改密码和删除访问密钥，您还可以设置"用户停用策略"来控制长期未使用的IAM用户到期自动停用。
#### 在ECS实例上运行的应用程序使用ECS委托
在华为云ECS实例上运行的应用程序需要凭证才能访问其他华为云服务。若要以安全的方式提供应用程序所需的凭证，可使用ECS委托获取临时访问密钥。在ECS获取临时访问密钥，需要在IAM上对ECS授权，并对相应的弹性云服务器资源进行授权委托管理。ECS通过向IAM申请指定委托的临时凭证，从而安全访问资源。ECS会为您自动轮换这些临时凭证，从而确保每次申请的临时凭证安全、有效。
当您启动ECS实例时，您可指定实例的委托，以作为启动参数。在ECS实例上运行的应用程序在访问华为云资源时可使用委托的临时访问密钥，同时委托的权限将确定允许访问资源的应用程序。
#### 开通云审计服务
您可以通过云审计服务（Cloud Trace Service，CTS）对IAM的关键操作事件进行收集、存储和查询，用于安全分析、合规审计、资源跟踪和问题定位等。为了方便查看IAM的关键操作事件，例如创建用户、删除用户等，建议您开启云审计服务。
