成员账户的最佳实践
请遵循以下建议,以帮助保护组织中成员账户的安全。这些建议假定您还遵守仅将根用户用于真正需要它的任务的最佳实践。
定义账户名称和属性
对于成员账户,请使用反映账户使用情况的命名结构和电子邮件地址。例如,Workloads+fooA+dev@domain.com
可用于 WorkloadsFooADev
,Workloads+fooB+dev@domain.com
可用于 WorkloadsFooBDev
。如果您为组织定义了自定义标签,我们建议您根据账户使用情况、成本中心、环境和项目,来为账户分配这些标签。这样可以更轻松地识别、整理和搜索账户。
高效扩展环境和使用账户
随着组织的不断扩展,在创建新账户之前,请确认满足类似需求的账户是否尚不存在,以避免不必要的重复。AWS 账户应基于常用的访问需求。如果您计划回收利用某些账户(例如沙盒账户或等效账户),我们建议您清理账户中不需要的资源或工作负载,但保存这些账户以备将来使用。
在注销账户之前,请注意账户注销限额限制。有关更多信息,请参阅 AWS Organizations 的配额和服务限制。考虑实施清理流程以回收利用账户,而不是尽可能注销账户和创建新账户。这样可以避免因运行的资源产生成本,以及避免达到 CloseAccount API 限制。
使用 SCP 限制成员账户中的根用户可以执行的操作
我们建议您在组织中创建服务控制策略(SCP)并将其附加到组织的根,以便将其应用于所有成员账户。有关更多信息,请参阅保护 Organizations 账户根用户凭证。
除必须在成员账户中执行的特定仅限根操作外,您可以拒绝所有根操作。例如,以下 SCP 会阻止任何成员账户中的根用户进行任何 AWS 服务 API 调用,但“更新配置错误的 S3 桶策略并拒绝所有主体的访问权限”(需要根凭证的操作之一)除外。有关更多信息,请参阅《IAM 用户指南》中的需要根用户凭证的任务。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "NotAction":[ "s3:GetBucketPolicy", "s3:PutBucketPolicy", "s3:DeleteBucketPolicy" ], "Resource": "*", "Condition": { "StringLike": { "aws:PrincipalArn": "arn:aws:iam::*:root" } } } ] }
在大多数情况下,任何管理任务都可以由成员账户中具有相关管理员权限的 AWS Identity and Access Management(IAM)角色执行。对于任何此类角色,都应使用适当的控件来限制、记录和监控其活动。