弁言
经常须要访问 AWS 资源,对 AWS 账户,用户,Role 等概念有些迷糊,所以本日就来了解一下 AWS 身份和访问管理 IAM。
什么是 AWS IAM
AWS Identity and Access Management (IAM) 是 Amazon Web Services 提供的一项服务,用于管理 AWS 资源的访问权限。通过 IAM,可以安全地控制用户、组和脚色对 AWS 服务和资源的访问权限。IAM 是 AWS 安全模型的焦点组成部分,确保只有经过授权的用户和应用步伐才气访问 AWS 资源。
IAM 的重要概念
- 账户(Account):
AWS 账户代表一个独立的所有者空间,用于管理和计费 AWS 资源。每个账户都有一个唯一的 account-id。
账户是资源的最高层级容器,所有的 AWS 资源都在某个 AWS 账户下创建和管理。
账户可以被以为是一个公司或组织在 AWS 上的代表。
在 AWS 中,账户分别通常根据组织的需求和最佳实践进行,以确保安全性、本钱管理和资源隔离。以下是一些常见的 AWS 账户分别计谋:
- - 按环境划分:开发账户,测试账户,生产账户
- - 按部门或团队划分:营销账户,销售账户,工程账户
- - 按项目划分:项目 A 账户,项目 B 账户
- - 按业务单元划分:业务单元 1 账户,业务单元 2 账户
- - 按混合划分:项目A-开发账户,项目A-生产账户,项目B-开发账户,项目B-生产账户
复制代码 - 用户(User):
IAM 用户是 AWS 账户中的唯一身份,可以是个人、应用步伐或服务。每个用户都有唯一的凭据(如用户名和密码、访问密钥)。
- 组(Group):
IAM 组是用户的集合。可以将用户添加到组中,并为组分配权限。组简化了权限管理,因为可以一次性为组中的所有用户分配权限。
- 脚色(Role):
IAM 脚色是具有特定权限的 AWS 身份,但没有特定的用户或组关联。脚色通常用于跨账户访问、应用步伐访问或临时访问。
- 计谋(Policy):
IAM 计谋是 JSON 文档,界说了答应或拒绝的权限。
计谋可以附加到用户、组或脚色,以授予相应的权限。
计谋类型包罗托管计谋(由 AWS 提供或自界说创建)和内联计谋(直接嵌入到单个用户、组或脚色中)。
用户 User 和 脚色 Role 的区别:
特性IAM 用户(User)IAM 脚色(Role)身份类型个人或应用步伐临时身份,无长期凭据凭据类型长期凭据(访问密钥、用户名/密码)临时凭据(通过 Assume Role 获取的临时安全令牌)利用场景连续访问 AWS 资源临时访问、跨账户访问、应用步伐访问、权限提升权限分配通过计谋直接附加到用户通过计谋附加到脚色,通过信任计谋界说谁可以 Assume 脚色典型场景为团队成员创建用户账户,分配长期访问权限为跨账户访问、应用步伐访问、临时权限提升创建脚色 账户与用户、脚色的关系:
用户和脚色都存在于一个 AWS 账户的上下文中。账户作为根容器,拥有和管理其下的用户和脚色。
用户是账户内的身份标识,拥有登录账户的能力和实行操纵的权限,这些权限可以通过附加到用户的计谋来精致控制。
脚色不直接关联到具体的身份,而是被授予临时的访问权限,用于在须要时饰演,以获取实行特定任务所需的权限。
账户可以创建多个用户和脚色,以满足差别的安全和管理需求,如最小权限原则、权限的临时访问等。
IAM 的重要功能
- 身份验证:
管理用户和服务的身份凭据,如用户名和密码、访问密钥、MFA(多因素身份验证)等。
- 访问控制:
界说和管理对 AWS 资源的访问权限,确保只有授权用户才气访问和操纵资源。
- 权限管理:
通过计谋分配细粒度的权限,控制用户和服务可以实行的具体操纵。
- 跨账户访问:
通过脚色和计谋,答应差别 AWS 账户之间的安全访问。
- 临时安全凭据:
通过脚色和 AWS STS(安全令牌服务),为用户和服务生成临时安全凭据,简化访问管理。
ADFS ,SAML 和 AWS 的关联
在 AWS 情况中,ADFS 可以用来实现身份团结,答应用户利用他们在企业的 Active Directory 中的凭据来登录 AWS 管理控制台或进行步伐访问。这样,企业可以保持对用户身份的会集管理,同时答应用户访问 AWS 资源而无需为他们创建单独的 AWS IAM 用户。
利用 ADFS 进行身份团结的基本步调包罗:
设置 ADFS:在企业的网络中设置 ADFS 服务,包罗设置信任关系和声明规则。
设置 AWS 作为信任方:在 AWS IAM 中创建一个身份提供商(Identity Provider, IdP),并设置 SAML 元数据以创建信任关系。
创建脚色和计谋:在 AWS 中创建 IAM 脚色和相应的权限计谋,这些脚色将被团结用户饰演。
用户登录:用户通过企业的登录流派利用其 Active Directory 凭据登录。ADFS 验证用户的身份,并向 AWS 发送一个包罗用户身份和脚色信息的 SAML 断言。
访问 AWS:用户被授予饰演指定 IAM 脚色的权限,从而可以访问 AWS 资源。
通过这种方式,ADFS 为企业提供了一种安全、高效的方法来管理对 AWS 资源的访问权限,同时简化了用户的登录过程。
ADFS 运动目次团结服务
ADFS(Active Directory Federation Services)是一种由微软提供的身份认证服务,它答应用户利用单一登录(SSO)技术来访问跨多个系统和应用的数据和资源,无论这些资源是位于本地网络照旧分布在互联网上。ADFS 是基于标准的网络身份认证协议,如 SAML(Security Assertion Markup Language),实现身份信息的共享。
ADFS 的重要功能和特点包罗:
单一登录(SSO):用户可以利用一组凭据(通常是他们的企业域凭据)来访问多个应用和服务,无需为每个服务单独登录。
身份团结:ADFS 答应差别组织之间的身份信息共享,使得用户可以利用本身组织的身份凭据访问另一个组织的资源。
安全的身份认证和授权:ADFS 利用加密和数字签名来确保在差别安全域之间传输的身份信息的安全性和完备性。
基于声明的身份认证:ADFS 利用声明(claims)来体现用户的身份信息和属性,这些声明可以在差别的系统和应用之间传递,用于身份认证和授权决议。
与 Active Directory 的集成:ADFS 与 Active Directory(AD)紧密集成,可以直接利用 AD 中的用户账户和组织结构信息,简化了身份管理和访问控制的设置。
ADFS 的应用场景包罗跨组织访问控制、云服务访问管理、企业内部应用的单一登录等。通过利用 ADFS,组织可以进步安全性,同时为用户提供更便捷的访问体验。
SAML 安全断言标记语言
SAML(Security Assertion Markup Language)是一种开放标准,用于在安全域之间互换身份验证和授权数据。SAML 是基于 XML 的,它答应身份提供者(IdP)通过断言向服务提供者(SP)传递关于主体(通常是指用户)的身份信息,从而使得用户可以在差别的系统和应用之间进行安全的单一登录(SSO)。
SAML 重要用于实现两个或多个差别系统之间的单一登录(SSO),使得用户可以利用一组凭据来访问多个应用或服务。它广泛应用于企业情况中,特别是在须要跨多个系统和服务进行身份验证和授权的场景中。
SAML 工作流程大致如下:
用户请求访问服务提供者(SP)的资源。
如果用户尚未认证,服务提供者将请求重定向到身份提供者(IdP)进行认证。
用户在身份提供者处进行认证(如果尚未登录,则须要登录)。
身份提供者验证用户的凭据,如果认证成功,它将生成一个包罗用户身份信息的 SAML 断言。
身份提供者将 SAML 断言发送回服务提供者。
服务提供者验证 SAML 断言的有用性,如果验证成功,用户将被授予对请求资源的访问权限。
SAML 断言通常包罗以下信息:
主体(Subject):指示了断言关于谁的信息,通常是用户的唯一标识符。
身份验证声明(Authentication Statement):包罗了用户身份验证的信息,如身份验证的时间和方法。
属性声明(Attribute Statement):可选,包罗了用户的其他属性信息,如脚色或电子邮件地点。
授权决议声明(Authorization Decision Statement):可选,包罗了关于用户对某资源的访问权限的信息。
SAML 使得跨域身份验证变得简朴和安全,镌汰了用户须要记住多个用户名和密码的负担,同时也简化了身份和访问管理的过程。
ADFS,SAML,AWS 之间的集成步调
场景形貌
假设你有一个企业内部的 Active Directory(AD),而且利用 ADFS 作为身份提供者(IdP)。你希望你的员工可以大概利用他们的 AD 凭据登录到 AWS 管理控制台,而不须要单独的 AWS 账户。
步调
- 在 ADFS 中设置 AWS 作为信任的服务提供者:
打开 ADFS 管理控制台,选择“添加信任的服务提供者”。
输入 AWS 提供的 SAML 元数据 URL 或上传元数据文件。
设置 SAML 属性,以便 ADFS 可以向 AWS 发送正确的 SAML 响应。
- 在 AWS 中设置 SAML 提供者:
登录到 AWS 管理控制台,打开 IAM 控制台。
选择“身份提供者”,然后选择“添加提供者”。
选择“SAML”作为提供者类型,输入提供者名称,并上传 ADFS 的 SAML 元数据文件。
3. 创建 IAM 脚色并设置信任关系:
在 IAM 控制台中,创建一个新的脚色。
选择“SAML 2.0 联称身份验证”作为信任实体。
选择刚刚创建的 SAML 提供者,并设置信任关系。
为脚色分配适当的权限计谋。
- 设置 SAML 断言:
在 ADFS 中,设置 SAML 断言规则,以便在用户成功登录后,向 AWS 发送用户的身份信息和权限。
IAM,SAML 和 ADFS 实例
例如:同事 A 和同事 B 都申请了 AWS 某账户下某一 Role 的权限,他们可以分别登入AWS, 访问基于该 AWS 账号下该 Role 赋予的资源。
A 同事登入 AWS:
Account ID: 366054198411
Account name: assumed-role/ADFS-SystemOperator/aa@company.reg.net
B 同事登入 AWS:
Account ID: 366054198411
Account name: assumed-role/ADFS-SystemOperator/bb@company.reg.net
当 A 同事和 B 同事登录 AWS 时,他们实际上是通过他们各自的企业身份认证系统登录的(如 ADFS,运动目次团结服务)利用相同的 AWS 账户(账户 ID 为 366054198411)登录 AWS,但饰演相同脚色(ADFS-SystemOperator)的差别实例。这种方式通常用于企业情况中,答应多个用户利用他们的企业身份(例如,他们的企业电子邮件地点)在不须要 AWS IAM 用户的情况下访问 AWS 资源,这种情况通常发生在利用 AWS Identity and Access Management (IAM) 脚色和身份团结(Federation)时。
具体来说:
Account ID:这是 AWS 账户的唯一标识符,两位同事利用的是同一个AWS账户。
Account name:这里的账户名实际上形貌了用户的身份信息,包罗他们所饰演的脚色和个人的标识符。
assumed-role:表明用户是通过饰演一个 IAM 脚色来进行身份验证的。这是一种常见的身份团结利用场景,答应用户通过外部身份提供者登录。
ADFS-SystemOperator:这是 IAM 脚色的名称,表明这个脚色大概具有系统操纵相关的权限。利用 ADFS 进行身份团结时,脚色名称通常会反映脚色的用途或权限级别。
aa@company.reg.net / bb@company.reg.net:这是两位同事的企业电子邮件地点,用作区分差别用户的标识符。在 AWS 的上下文中,这表明固然他们访问的是同一个账户,但是通过他们各自的企业身份进行了区分。
这种设置答应企业通过 ADFS 等身份团结服务,以安全且管理会集的方式控制员工对 AWS 资源的访问,同时避免了须要为每个用户单独创建和管理 AWS IAM 用户的复杂性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |