AWS IAM 相关概念

Table of Contents

1. IAM Role(IAM 角色)

什么是 IAM 角色?

  • IAM 角色是 AWS 提供的一种 身份,类似于用户,但它不是为特定人创建的,而是赋予 AWS 服务或其他身份的权限集合。
  • 角色的特点:临时性、需要通过某种机制“扮演”(assume)角色后才能使用它的权限。

使用场景:

  • 一个 EC2 实例需要访问 S3 存储桶,但不需要使用长期密钥(如 Access Key 和 Secret Key)。
  • AWS Lambda 函数调用 DynamoDB 时需要临时权限。

示例:
假如一个角色被授予读取 S3 的权限,那么 EC2 或 Lambda 可以在运行时“扮演”这个角色来访问 S3。


2. IAM Policy(IAM 策略)

什么是 IAM 策略?

  • IAM 策略是用来 定义权限 的文档,通常以 JSON 格式编写。
  • 它规定了“谁可以做什么”,具体定义:
    • :角色、用户或组。
    • 可以做什么:允许访问哪些 AWS 服务或资源,以及可以执行哪些操作(例如 s3:GetObject)。
    • 限制条件:如时间范围、IP 地址等。

策略示例(JSON):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket-name/*"
    }
  ]
}
  • 上述策略允许读取 S3 中 my-bucket-name 的所有对象。

分类:

  • 管理型策略(Managed Policy):AWS 提供的通用策略。
  • 自定义策略(Custom Policy):用户自己创建的策略。

3. IAM Trust Policy(IAM 信任策略)

什么是 IAM 信任策略?

  • 信任策略定义了 谁可以扮演一个 IAM 角色
  • 如果 IAM 策略规定了“权限”,那么 信任策略规定了谁可以使用这些权限

关键点:

  • 信任策略是附加在 IAM 角色上的。
  • 只有被信任的实体(AWS 服务、用户、账户)才能“扮演”该角色。

信任策略示例(JSON):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
  • 上述策略表示允许 AWS 的 EC2 服务扮演该角色。

4. IAM Role Anywhere

什么是 IAM Role Anywhere?

  • IAM Role Anywhere 是 AWS 提供的功能,允许你在 本地服务器或其他非 AWS 环境 使用 IAM 角色来访问 AWS 服务。
  • 它通过 X.509 证书 来验证身份并授予临时权限。

解决的问题:

  • 在非 AWS 环境中,你可能需要访问 AWS 服务(如 S3、DynamoDB),但传统上需要使用长期凭据(Access Key 和 Secret Key)。
  • IAM Role Anywhere 提供了更安全的替代方案,允许基于证书的认证,避免长期密钥泄露风险。

工作原理:

  1. 创建一个 IAM 角色并附加必要权限。
  2. 配置信任策略,允许 Role Anywhere 认证的实体扮演该角色。
  3. 在本地系统中安装并配置证书。
  4. 使用 IAM Role Anywhere SDK 自动请求临时凭据访问 AWS 服务。

适用场景:

  • 数据中心或本地服务器需要安全地访问 AWS。
  • 使用非 AWS 云服务(如 GCP 或 Azure)时需要跨云访问 AWS。

总结

概念 定义 关键点
IAM Role AWS 服务或其他身份使用的权限集合,需临时扮演。 角色本身无固定密钥,通过机制(如信任策略)授予临时权限。
IAM Policy 定义了“可以做什么”的权限策略文档。 允许或拒绝访问 AWS 资源的规则,以 JSON 格式定义。
IAM Trust Policy 定义了“谁可以扮演该角色”的策略。 用于角色的安全性控制,常用于 EC2、Lambda 等服务的授权。
IAM Role Anywhere 允许本地环境通过角色访问 AWS 服务的功能。 基于证书认证,避免使用长期密钥,是混合云场景下的安全解决方案。

通过这些机制,AWS 提供了强大且灵活的权限管理功能,适用于各种场景! 😊

Comments |0|

Legend *) Required fields are marked
**) You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Category: 似水流年