其他分享
首页 > 其他分享> > AWS25. IAM角色访问S3

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 存储桶

=== 架构图

image

== 实验步骤

=== 创建 IAM 角色

  • 导航到IAM
  • 左侧菜单中,单击角色 。单击创建角色该按钮以创建新的 IAM 角色
  • 在创建角色部分,为角色选择可信实体类型
  • AWS 服务
  • 使用案例:EC2

image

  • 单击下一步
  • 添加权限:现在,您可以看到策略列表。按名称S3fullaccess搜索权限,然后单击AmazonS3FullAccess
  • 单击下一步
  • 角色名称:输入 S3Role
  • 已成功按名称 S3Role 创建了一个 IAM 角色。
  • 注意:您可以使用其他名称创建角色,然后将其附加到 EC2 实例
  • 您已成功创建角色以访问 S3 存储桶

=== 启动 EC2 实例

  • 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。
  • 顶部菜单导航到 EC2
  • 左侧面板,单击"实例",然后单击"启动新实例"

==== (1)控制台启动实例

image

==== (2)选择系统镜像

image

==== (3)选择实例类型

image

==== (4)配置实例

  • 向下滚动到 IAM 角色,然后选择我们在上述步骤中创建的角色

image

  • 其他字段保留为默认值

==== (5)添加存储

image

==== (6)添加标签

image

==== (7) 配置安全组

  • 添加 SSH:

. 选择类型: 选择 SSH
. 协议:TCP
. 端口范围:22
. 源:选择"任何位置"

image

  • 点击下一步 审核和启动

==== (8) 审核启动

  • 检查所有选定的设置,无误点击启动
  • 选择现有密钥对,确认并单击启动实例

image


=== 创建 S3 存储桶

  • 请确保您位于美国东部(弗吉尼亚北部)us-east-1 区域。
  • 顶部菜单导航到 S3

image

  • 在 S3 页面上,单击创建存储桶填写存储桶详细信息
  • 桶名称:输入mys3bucket-test-abcd
  • 注意: S3 存储桶名称是全局唯一的,请选择一个可用的名称
  • AWS 区域:选择美国东部(弗吉尼亚北部)美国东部-1
  • 对于对象所有权:选择ACL 已禁用(推荐)
  • 其他设置保留为默认值。
  • 创建存储桶按钮
  • S3 存储桶已创建

image


=== 通过 EC2 实例访问 S3 存储桶

  • SSH 进入 EC2 实例
  • 登录后,切换到** root 用户**:
  • sudo su
  • 运行以下命令,通过 CLI 查找您的 S3 存储桶
  • aws s3 ls

image

  • 您将看到类似于上图的输出,其中显示我们能够借助附加到 EC2 实例IAM角色访问 S3 存储桶
  • 创建一个新的文本文件,并通过 AWS CLI 将其上传到S3存储桶 (使用以下命令):

touch test.txt
aws s3 mv test.txt s3://<your_bucket_name>

  • 注意:您需要输入您的存储桶名称
  • 检查 S3 存储桶中的新文件

image

  • 重复步骤前面步骤创建更多文件,如 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 存储桶的文件

image

  • 您还可以使用以下命令 列出通过 CLI 从 EC2 实例上传到 S3 存储桶的文件

aws s3 ls s3://<your_bucket_name>

  • 注意:您需要输入您的存储桶名称

image


标签:IAM,存储,策略,角色,S3,AWS,AWS25
来源: https://www.cnblogs.com/ajajroom/p/16400090.html