AWS25. IAM角色访问S3
作者:互联网
IAM角色访问S3
=== 什么是IAM策略?
- IAM(身份和访问管理)策略是 AWS 中的一个实体,它使您能够以安全的方式管理对 AWS 服务和资源的访问。
- 策略以 JSON 格式存储在 AWS 上,并作为基于身份的策略附加到资源。
- 您可以将 IAM 策略附加到不同的实体,例如 IAM 组、用户或角色。
- IAM 策略使我们能够限制用户或组仅使用他们需要的特定服务。
=== 策略类型
==== 有两种重要的策略类型:
- 基于身份的策略
- 基于资源的策略
==== 基于身份的策略
- 基于身份的策略是您可以附加到 AWS 身份 (例如用户、用户组或角色) 的策略。
- 这些策略控制实体可以执行的操作、可以使用的资源以及可以使用所述资源的条件。
- 基于身份的策略进一步分类为:
- AWS 托管策略
- 自定义托管策略
==== AWS 托管策略
- AWS 托管策略是由 AWS 自己创建和管理的策略。
- 如果您不熟悉 IAM 策略,则可以先使用 AWS 托管策略,然后再管理自己的策略。
==== 自定义托管策略
- 自定义托管策略是由您在 AWS 账户中创建和管理的策略。
- 与 AWS 托管策略相比,客户托管策略为我们提供了更精确的控制。
- 您可以在可视化编辑器中创建和编辑 IAM 策略,也可以直接创建 JSON 策略文档。
- 您可以使用以下链接创建自己的 IAM 策略: https://awspolicygen.s3.amazonaws.com/policygen.html[创建自己的IAM策略]
==== 基于资源的策略
- 基于资源的策略是我们附加到 Amazon S3 存储桶等资源的策略。
- 基于资源的策略授予对特定资源执行特定操作的指定权限,并定义这些策略在什么条件下适用于这些资源。
- 基于资源的策略与其他策略一致。
- 目前没有 AWS 托管的基于资源的策略。
- 只有一种称为信任策略的基于资源的策略类型,该策略附加到 IAM 角色。
- IAM 角色既是支持基于资源的策略的身份,也是支持资源的资源。
=== 什么是IAM 角色?
- IAM 角色是具有特定权限的 AWS IAM 身份(我们可以在 AWS 账户中创建)。
- 它类似于 IAM 用户,它决定了身份在 AWS 中 可以做什么和不能做什么。
- 无需将角色附加到特定用户或组,而是可以将其附加到需要它的任何人。
- 拥有角色的好处是,我们没有标准的长期凭证,例如与之关联的密码或访问密钥。
- 当资源代入特定角色时,它会为角色会话提供临时安全凭证。
- 我们可以使用角色来访问无权访问我们的 AWS 资源的用户、应用程序或服务。
- 我们可以根据自己的要求,将一个或多个策略附加到角色中。
- 例如,我们可以创建一个具有 s3 完全访问权限的角色,并将其附加到 EC2 实例以访问 S3 存储桶。
=== 架构图
== 实验步骤
=== 创建 IAM 角色
- 导航到
IAM
- 在左侧菜单中,单击
角色
。单击创建角色
该按钮以创建新的 IAM 角色。- 在创建角色部分,为角色选择可信实体类型:
- AWS 服务
- 使用案例:EC2
- 单击下一步
- 添加权限:现在,您可以看到策略列表。按名称S3fullaccess搜索权限,然后单击
AmazonS3FullAccess
。- 单击下一步
- 角色名称:输入 S3Role
- 您已成功按名称 S3Role 创建了一个 IAM 角色。
- 注意:您可以使用其他名称创建角色,然后将其附加到 EC2 实例
- 您已成功创建角色以访问 S3 存储桶。
=== 启动 EC2 实例
- 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。
- 顶部菜单导航到 EC2
- 左侧面板,单击"实例",然后单击"启动新实例"。
==== (1)控制台启动实例
==== (2)选择系统镜像
==== (3)选择实例类型
==== (4)配置实例
- 向下滚动到 IAM 角色,然后选择我们在上述步骤中创建的角色。
- 将其他字段保留为默认值。
==== (5)添加存储
==== (6)添加标签
==== (7) 配置安全组
- 添加 SSH:
. 选择类型: 选择 SSH
. 协议:TCP
. 端口范围:22
. 源:选择"任何位置"
- 点击下一步
审核和启动
==== (8) 审核启动
- 检查所有选定的设置,无误点击启动
- 选择现有密钥对,确认并单击启动实例
=== 创建 S3 存储桶
- 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。
- 顶部菜单导航到 S3
- 在 S3 页面上,单击
创建存储桶
并填写存储桶详细信息。- 桶名称:输入
mys3bucket-test-abcd
- 注意: S3 存储桶名称是全局唯一的,请选择一个可用的名称。
- AWS 区域:选择美国东部(弗吉尼亚北部)美国东部-1
- 对于对象所有权:选择ACL 已禁用(推荐)
- 将其他设置保留为默认值。
- 创建存储桶按钮
- S3 存储桶已创建。
=== 通过 EC2 实例访问 S3 存储桶
- SSH 进入 EC2 实例
- 登录后,切换到** root 用户**:
- sudo su
- 运行以下命令,通过 CLI 查找您的 S3 存储桶。
- aws s3 ls
- 您将看到类似于上图的输出,其中显示我们能够借助附加到 EC2 实例的IAM角色访问 S3 存储桶。
- 创建一个新的文本文件,并通过 AWS CLI 将其上传到S3存储桶 (使用以下命令):
touch test.txt
aws s3 mv test.txt s3://<your_bucket_name>
- 注意:您需要输入您的存储桶名称。
- 检查 S3 存储桶中的新文件。
- 重复步骤前面步骤并创建更多文件,如 new.txt、smile.txt 并使用以下命令将其上传到 S3 存储桶:
touch new.txt smile.txt
aws s3 mv new.txt s3://<your_bucket_name>
aws s3 mv smile.txt s3://<your_bucket_name>
- 注意:您需要输入您的存储桶名称。
- 您可以通过在 AWS 控制台中导航到 S3 存储桶来确认上传到 S3 存储桶的文件。
- 您还可以使用以下命令 列出通过 CLI 从 EC2 实例上传到 S3 存储桶的文件:
aws s3 ls s3://<your_bucket_name>
- 注意:您需要输入您的存储桶名称。
标签:IAM,存储,策略,角色,S3,AWS,AWS25 来源: https://www.cnblogs.com/ajajroom/p/16400090.html