在设置AWS应用程序时使用AWS和秘密访问密钥的最佳实践是什么?
要获取访问密钥和访问秘密,需要创建IAM帐户,但是IAM帐户与用户关联,而不是与应用关联。如果IAM用户是针对实际用户而不是应用程序的,那么获取特定于应用程序(或不同的应用程序环境、生产、登台等)的访问密钥和访问秘密的最佳方法是什么?
您不会为应用程序分配IAM用户,通常您使用IAM角色。
为了理解它们的区别,让我们先来了解一下IAM的基本知识
IAM控制:谁(认证)可以做什么(授权)在您的AWS帐户.通过IAM对用户/组和角色进行身份验证(谁),而通过策略进行授权(什么)。
这里的术语
-
用户-最终用户考虑人
-
组—在一组权限(策略)下的一组用户
-
角色—用于在一段时间内授予特定角色特定权限。这些参与者可以通过AWS或一些受信任的外部系统进行身份验证。
用户和角色使用策略进行授权。请记住,用户和角色不能做任何事情,直到您允许使用策略的某些操作。
回答以下问题,您将区分用户和角色:
- 可以有密码吗?是的→用户,没有比;
- 可以有访问密钥吗?是的→用户,没有比;
- 可以属于组吗?是的→用户,No ->
- 是否可以与AWS资源关联(例如EC2实例)?没有比;用户,是的→角色
AWS支持3种不同场景的角色类型
- AWS服务角色(例如:EC2, Lambda, Redshift,…)
- 跨账户访问:向来自其他AWS账户的用户授予权限,无论您是否控制这些账户。
- Identity Provider Access:向经过可信外部系统认证的用户授予权限。AWS支持两种身份联合:-基于web的身份,如Facebook, google - IAM支持通过OpenID Connect生成- SAML 2.0身份,如Active Directory、LDAP.
要理解role是什么,你需要阅读它的用例,我不想重新发明轮子,所以请阅读以下AWS文档:https://aws.amazon.com/blogs/security/how-to-use-a-single-iam-user-to-easily-access-all-your-accounts-by-using-the-aws-cli/
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
希望有帮助。