众所周知的AWS安全最佳实践是要求承担执行敏感任务的角色,而不是直接将这些权限授予用户。根据文档
作为最佳实践,使用IAM角色临时凭据只访问为IAM用户完成工作(授予最少特权)所需的资源,为特定的作业任务创建单独的角色,并为这些任务承担这些角色。
这种最佳实践背后的原因是什么(相对于授予用户执行任务所需的特权)?
发布于 2022-07-12 13:12:40
在AWS官方文件中,AWS声明
此外,角色不具有标准的长期凭据,例如与其关联的密码或访问密钥。相反,当您承担角色时,它将为您的角色会话提供临时安全凭据。
是的,原因是因为临时安全凭据为您提供了更好的安全姿态,而不是使用访问密钥的IAM用户。对于IAM用户访问密钥,您需要遵循最佳实践,比如90天后的轮转,或更早。
使用默认的IAM访问键,您只有两个字段
aws_access_key_id=
aws_secret_access_key=
使用IAM角色临时凭据,您有3个字段,并且aws_session_token
会产生差异。
aws_access_key_id=
aws_secret_access_key=
aws_session_token=
考虑一下,您的开发人员可能会意外地将带有代码的访问密钥上传到公共GitHub回购中。或者,你可以用谷歌这个阶段来看看会发生什么?
如果不小心提交AWS访问密钥,会发生什么情况?
AWS在很久以前就警告过我们这方面的最佳实践。你用下面的推荐信来检查它们。
参考文献:
发布于 2022-07-12 23:16:23
这与sudo
命令存在的原因完全相同。
如果你每天都使用行政级别的特权,你会后悔做一些事情的风险更大。最好是在实际需要时才使用更高级别的权限。
举个现实世界的例子,设想一个手持斧头的消防,可以要求人们疏散着火的建筑物。当他们参观杂货店时,如果他们拿起斧头,大声要求西红柿,那是不对的。只有当需要额外的能力时,他们才应该“承担”消防队员的角色。
或者,举一个更及时的例子,比如Thor想开一罐啤酒。他应该用他的手指打开它,而不是使用Mj lnir,并有可能引发地震。
https://stackoverflow.com/questions/72952835
复制相似问题