1. IAM 身份识别与访问控制
建议先学习IAM的常用术语,才好了解后面如何正确使用IAM。
需要注意这些常见的错误用法,很多重大安全事件是由于这些错误用法导致的。
常用概念
账户 Account
AWS Organization中的概念,AWS 组织(Organization)中的一个账户(Account)是独立的、可独立配置的实体。每个 AWS 账户都有自己的资源、账单、权限设置。通过使用多个账户,可以实现资源隔离、权限分离、成本管理、合规和审计等。Account ID是一个唯一的12位数字,比如123456789012.
用户 User
用户是AWS IAM中的概念,代表一个唯一的身份,可以是一个人或一个服务账户。IAM 用户可以拥有其自己的用户名、密码以及访问密钥,从而能够访问AWS资源。通过分配不同的权限策略,可以细粒度地控制用户可以执行哪些操作。每个用户与其自己的账户资源相关联,并且可以通过权限策略来限制其对共享资源的访问。IAM 用户通常用来管理和控制对AWS资源的访问,确保安全性和合规性。
根用户
根用户是通过创建 AWS 账户时使用的电子邮件地址和密码登录的用户。根用户拥有 AWS 账户内所有资源的完全访问权限,并且可以执行任意操作,包括创建和删除帐户、管理账单信息、移交账户所有权等。由于根用户权限过高,推荐仅在账户创建和必要的管理任务时使用,并始终启用多因素认证(MFA)来增强安全性。
普通IAM用户
普通IAM用户是在 AWS Identity and Access Management (IAM) 创建的用户实体。IAM用户拥有独立的凭据,可以通过配置权限策略来限制其操作范围。普通IAM用户的权限根据分配的策略来决定,可以是特定服务的访问权限或具体操作权限。IAM用户的最佳实践包括最小权限原则,即分配用户所需的最少权限以减少安全风险。
常见错误用法
使用IAM User是错误的,真人应该使用IAM Identity Center这样得到的权限是短期有效的权限,代入IAM Role获得权限;
在一个账号下管理所有资源是错误的。通过IAM权限无法控制谁能看到什么资源,要么都可以看到,要么都不能看到。此外还有其他权限控制限制存在,因此最好的资源隔离方式是采用多账号,比如开发环境一个账号,测试环境一个账号,关于多账号查看多账号管理。
在管理账户下创建计算存储等资源是错误的。管理账户作为整个组织权限最大的账户,没有策略能够约束它,因此也就缺少安全管理手段,测试,生产等资源应该在成员账户中创建和管理,这样方便实现统一规模化的安全管理,对于不同重要程度的账户应用不同的安全策略。
root用户没有开启MFA是错误的。 在 AWS 中,IAM 根用户拥有最高权限账户访问权,能够访问和修改 AWS 账户内的每一个资源。紧密保护此账户的凭证至关重要。最佳实践建议启用多因素认证 (MFA) 以增加安全层级,
根用户使用AKSK长期有效安全凭据是错误的。根用户权限最大,如果使用长期有效的安全凭据容易导致在多人之间传递使用,谁能看到谁可以拥有绝对访问权限,不仅容易丢失,被攻击者用于挖矿或者勒索,造成企业损失,也可能被内部恶意员工利用删除数据库,存储桶等对业务造成破坏。
在EC2实例中使用静态AKSK安全凭据是错误用法。应该用IAM role绑定到EC2实例上做授权,因为使用静态的AKSK容易导致安全风险和管理凭据复杂度高的问题。
避免这些常见错误可以极大地增强你在AWS云上的安全能力。
推荐解决方案:多账号管理
在AWS上使用多账号管理有许多好处,主要包括以下几个方面:
1. 安全性和治理
多账号管理可以提供更高的安全性和治理能力。每个AWS账号都是一个独立的安全边界,默认情况下,账号之间没有访问权限。这意味着你可以将不同的工作负载、应用程序或团队隔离开来,从而减少潜在的安全风险13。
2. 成本分配和管理
使用多个AWS账号可以简化成本分配和管理。每个账号的费用是独立计算的,这使得你可以更容易地追踪和分配成本到具体的项目、团队或业务单元。这对于财务管理和成本优化非常有帮助14。
3. 灵活的安全控制
多账号管理允许你为不同的工作负载或应用程序设置特定的安全控制。例如,你可以为需要符合HIPAA或PCI DSS等严格合规要求的工作负载创建独立的账号,并应用相应的安全策略和控制措施35。
4. 适应业务流程
多账号管理可以更好地适应和反映公司的业务流程和需求。你可以根据不同的业务单元、团队或项目创建独立的AWS账号,从而更灵活地管理和扩展你的云环境13。
5. 简化管理和自动化
AWS提供了多种工具和服务,如AWS Organizations和AWS Control Tower,帮助你集中管理和自动化多个账号的创建、配置和治理。这些工具可以显著减少管理多个账号的复杂性,并提高运营效率13。
6. 快速创新
通过为不同的团队、项目或产品分配独立的AWS账号,你可以加速创新过程。每个团队可以在自己的账号中自由地实验和开发,而不会影响其他团队的工作34。
综上所述,使用多账号管理可以显著提高AWS环境的安全性、成本管理、灵活性和运营效率,是AWS最佳实践之一134。
推荐解决方案:数据防护边界
采用AWS data perimeters有以下几个主要原因:
防止未经授权的数据访问和泄露。data perimeters可以通过身份、资源和网络三个层面的控制来防止未经授权的访问。
满足合规性要求。data perimeters可以帮助企业遵守各种监管和隐私协议,防止数据泄露。
实现纵深防御。data perimeters作为粗粒度的访问控制,可以与现有的细粒度访问控制策略配合使用,构建更加全面的安全防御体系。
提高安全性并简化管理。data perimeters可以通过组织级别的统一策略来管理和实施访问控制,提高安全性并简化管理。
总之,采用AWS data perimeters可以有效地保护企业在AWS上的敏感数据,满足合规性要求,并提高整体的安全性和管理效率。
最后更新于