Introduction to AWS Identity and Access Management (IAM)
什么是IAM
AWS 身份与访问管理(IAM)是亚马逊网络服务(AWS)提供的一项网络服务,能让您安全地管理对 AWS 服务和资源的访问。 它使您可以控制谁能够访问哪些 AWS 资源,以及他们可以对这些资源执行什么操作。
IAM关键概念
用户
IAM 用户代表与 AWS 服务交互的个人或应用程序。每个用户都有一组唯一的凭证(如访问密钥和密码)。
用户组
用户组是 IAM 用户的集合。通过给一个组分配权限,您可以更高效地管理多个用户的访问权限。
角色
角色用于委托对 AWS 资源的访问权限。它们不与特定的用户或组相关联
策略
策略是 IAM 访问控制的核心。策略是一个基于 JSON 的文档,用于定义权限。它详细说明了允许或拒绝用户、组或角色对特定 AWS 资源进行的操作。
IAM应用场景
多用户环境下的权限管理
跨账户访问管理
与第三方应用的集成
IAM的安全最佳实践
最小权限原则 只授予用户、组或角色完成其工作任务所需的最小权限
定期审查权限 企业的业务需求和员工职责可能会随着时间而变化,因此需要定期审查和更新用户、组和角色的权限
启用多因素认证(MFA) 对于重要的用户账户,建议启用多因素认证
目的
此实验将演示:
探索预先创建的 IAM 用户和组
检查应用于预先创建的组的 IAM 策略
按照实际场景,将用户添加到启用了特定功能的组
查找和使用 IAM 登录 URL
试验策略对服务访问的影响
步骤一 浏览用户和组
1.在 AWS Management Console 顶部的搜索栏中,搜索并选择IAM.
2.在左侧的导航窗格中,单击 Users。
3.单击 user-1。
这将带来 user-1 的摘要页面。将显示 Permissions 选项卡。
请注意,user-1 没有任何权限。
注意:您应该会看到 Unexpected 错误消息。这是正常的。
4.单击 Groups 选项卡。 User-1 也不是任何组的成员。
5.单击 Security credentials 选项卡。 user-1 被分配了控制台密码
6.在左侧导航窗格中,单击 User Groups。
已为您创建以下组:
EC2-Administrator
EC2-Support
S3-Support
单击 EC2-Support 组。
这将带您进入 EC2-Support 组的摘要页面。
7.单击 Permissions 选项卡。 此组具有与之关联的托管策略,称为 AmazonEC2ReadOnlyAccess。
托管策略是可以附加到 IAM 用户和组的预构建策略 (由 AWS 或您的管理员构建)。
更新策略后,对策略的更改将立即应用于附加到策略的所有用户和组。
单击 Permissions (权限) 选项卡下的 AmazonEC2ReadOnlyAccess,此时将打开一个新的浏览器窗口。
现在单击 { } JSON。
8.IAM 策略中语句的基本结构为:
Effect 表示是 Allow (允许) 还是 Deny (拒绝) 权限。
Action 指定可对 AWS 服务进行的 API 调用(例如 cloudwatch:ListMetrics)。
Resource 定义策略规则涵盖的实体的范围(例如,特定的 Amazon S3 存储桶或 Amazon EC2 实例,或 *,表示任何资源)。
9.在左侧导航窗格中,单击 User Groups。
单击 S3-Support 组。
S3-Support 组附加了 AmazonS3ReadOnlyAccess 策略。
10.单击 Permissions (权限) 选项卡下的 AmazonS3ReadOnlyAccess,此时将打开一个新的浏览器窗口。
现在单击 { } JSON。
此策略有权获取和列出 Amazon S3 中的资源。
11.在左侧导航窗格中,单击 User Groups。
单击 EC2-Admin 组。
单击 Permissions (权限) 选项卡下的 EC2-Admin-Policy。现在单击 JSON 选项卡。
此策略授予查看 (Describe) 有关 Amazon EC2 的信息的权限,以及启动和停止实例的能力。
12.在屏幕底部,单击 Cancel (取消) 以关闭策略。
业务场景
业务场景 在本实验的其余部分,您将使用这些用户和组来启用支持以下业务场景的权限: 用户---在组中---- 权限
用户 1 - S3 支持-- 对 Amazon S3 的只读访问权限
用户 2 - EC2 支持-- 对 Amazon EC2 的只读访问权限
用户 3 - EC2-管理员-- 查看、启动和停止 Amazon EC2 实例
步骤二 将用户添加到组
1.在左侧导航窗格中,单击 User Groups。
2.单击 S3-Support 组。
3.单击 Users 选项卡。
4.在 Users 选项卡中,单击 Add Users。
5.在 Add Users to Group (将用户添加到组) 窗口中,配置以下内容:
选择 user-1。
在屏幕底部,单击 Add Users。
在 Users 选项卡中,您将看到 user-1 已添加到组中。
6.将 user-2 添加到 EC2-Support Group
您已将 user-2 雇佣到一个角色中,他们将在该角色中为 Amazon EC2 提供支持。
使用与上述步骤类似的步骤,将 user-2 添加到 EC2-Support 组。
user-2 现在应该是 EC2-Support 组的一部分。
7.将 user-3 添加到 EC2-Admin 组
您已聘请用户 3 作为 Amazon EC2 管理员,负责管理您的 EC2 实例。
8.使用与上述步骤类似的步骤,将 user-3 添加到 EC2-Admin 组。
user-3 现在应该是 EC2-Admin 组的一部分。
9.在左侧导航窗格中,单击 User Groups。
每个 Group 的 Users 列中应有一个 1,表示每个 Group 中的用户数。
步骤三 登录和测试用户
1.在左侧导航窗格中,单击 Dashboard。
显示 IAM 用户登录 URL,它看起来类似于:https://123456789012.signin.aws.amazon.com/console 此链接可用于登录您当前使用的 AWS 账户。
2.将 IAM 用户登录 URL 复制到文本编辑器。
3.打开一个无痕窗口。
4.单击 Tools 菜单选项
5.单击 InPrivate 浏览
6.将 IAM 用户登录链接粘贴到您的私有窗口中,然后按 Enter。
您现在将以用户 1 的身份登录,该用户已被聘为您的 Amazon S3 存储支持人员。
7.登录方式:
IAM 用户名: 用户 1
密码:粘贴位于这些说明左侧的 AdministratorPassword 的值。
在 AWS Management Console 顶部的搜索栏中,搜索并选择第 3 页.
8.单击名称中包含 s3bucket 的存储桶。
您的 S3 存储桶的名称也位于这些说明的左侧。名为 awslabs-resources 的存储桶也可能与错误一起存在。
注意:这是正常的。您无权访问此存储桶。
由于您的用户是 IAM 中 S3-Support Group 的成员,因此他们有权查看 Amazon S3 存储桶列表和 s3bucket 的内容。
9.现在,测试他们是否有权访问 Amazon EC2。
在 AWS Management Console 顶部的搜索栏中,搜索并选择EC2.
10.通过以下方式导航到启动实验室的区域:
单击屏幕顶部 Support 左侧的下拉箭头
选择与这些说明左侧的 Region 值匹配的 region 值
在左侧导航窗格中,单击 Instances (实例)。
您看不到任何实例。这是因为尚未为您的用户分配任何使用 Amazon EC2 的权限。
您现在将以用户 2 的身份登录,该用户已被聘为您的 Amazon EC2 支持人员。
11.通过配置以下内容,将用户 1 从 AWS 管理控制台中注销:
在屏幕顶部,单击 user-1
单击 Sign Out
将 IAM 用户登录链接粘贴到您的私有窗口中,然后按 Enter。
此链接应位于文本编辑器中。
12.登录方式:
IAM 用户名: 用户 2
密码:粘贴位于这些说明左侧的 AdministratorPassword 的值。
在 AWS Management Console 顶部的搜索栏中,搜索并选择EC2.
在屏幕右上角,通过切换按钮启用 New EC2 Experience(如果默认情况下未启用)。
13.通过以下方式导航到启动实验室的区域:
单击屏幕顶部 Support 左侧的下拉箭头
选择与这些说明左侧的 Region 值匹配的 region 值
在左侧导航窗格中,单击 Instances (实例)。
您现在可以看到 Amazon EC2 实例,因为您具有 Read Only 权限。但是,您将无法对 Amazon EC2 资源进行任何更改。
14.应选择您的 EC2 实例如果未选择,请选择它。
在 Instance state(实例状态)中,菜单单击 Stop instance(停止实例)。
在 Stop instance (停止实例) 窗口中,单击 Stop (停止)。
您将收到一条错误消息,指出您无权执行此操作。这表明该策略只允许您获取信息,而不进行更改。
关闭显示的错误消息。
15.接下来,检查用户 2 是否可以访问 Amazon S3。
在 AWS Management Console 顶部的搜索栏中,搜索并选择第 3 页.
您将收到错误 Access Denied because user-2 didn't permission to use Amazon S3.
您现在将以用户 3 的身份登录,该用户已被聘为您的 Amazon EC2 管理员。
16.通过配置以下内容,将用户 2 从 AWS 管理控制台中注销:
在屏幕顶部,单击 user-2
单击 Sign Out
将 IAM 用户登录链接粘贴到您的私有窗口中,然后按 Enter。
17.再次将登录链接粘贴到 Web 浏览器地址栏中。如果它不在剪贴板中,请从之前存储它的文本编辑器中检索它。
登录方式:
IAM 用户名: 用户 3
密码:粘贴位于这些说明左侧的 AdministratorPassword 的值。
在 AWS Management Console 顶部的搜索栏中,搜索并选择EC2.
18.通过以下方式导航到启动实验室的区域:
单击屏幕顶部 Support 左侧的下拉箭头
选择与这些说明左侧的 Region 值匹配的 region 值
19.在左侧导航窗格中,单击 Instances (实例)。 作为 EC2 管理员,您现在应该有权停止 Amazon EC2 实例。
应选择您的 EC2 实例。如果不是,请选择它。
20.在 Instance state(实例状态)中,菜单单击 Stop instance(停止实例)。
21.在 Stop Instance (停止实例) 窗口中,单击 Stop (停止)。
22.实例将进入 stopping 状态并关闭。 关闭您的隐私窗口。
结论
探索预先创建的 IAM 用户和组
已检查应用于预先创建的组的 IAM 策略
遵循真实场景,将用户添加到启用了特定功能的组
找到并使用了 IAM 登录 URL
试验了策略对服务访问的影响