amazon-web-services - 允许 AWS 用户创建自己的第一个访问 key

标签 amazon-web-services amazon-iam

我希望属于特定组的 AWS IAM 用户能够管理他们自己的凭证,包括创建他们的第一个访问 key 。要求他们不得获得其他权限,例如列出帐户的用户。

控制台访问似乎不是一个选项,因为它需要我不想授予的权限(例如 ListUsers)。

因此,我尝试了 AWS CLI 选项并按照 AWS 文档中的建议添加了以下策略。

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "iam:*LoginProfile",
      "iam:*AccessKey*",
      "iam:*SSHPublicKey*"
    ],
    "Resource": "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
  }
}

这很好用,除了 AWS CLI 似乎需要访问 key 才能登录(我的用户还没有访问 key ,我希望他们自己创建访问 key )。

作为变通方法,我为他们创建了访问 key ,然后要求他们更改它,但这非常麻烦。

有没有办法使用用户名和密码登录 AWS CLI?还有其他方法可以实现我的用例吗?

最佳答案

我遇到了类似的问题。我希望我的非 root 用户能够更改他们的密码并更改(创建/禁用/删除)他们用于 CLI 访问的访问 key 。但是,这些用户必须不能列出用户或显示/与其他用户做任何事情。

我尝试实现最小策略是这个 JSON:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "iam:DeleteAccessKey",
        "iam:ChangePassword",
        "iam:CreateAccessKey",
        "iam:ListAccessKeys"
      ],
      "Resource": "arn:aws:iam::*:user/${aws:username}"
    },
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": "iam:GetAccountPasswordPolicy",
      "Resource": "*"
    }
  ]
}

对像我这样的 AWS 菜鸟的一些解释:

  • 我在 IAM > Policies > Create policy 中创建了自定义策略。我获取了相关权限,添加资源范围,然后将此权限分配给我的用户组。

  • iam:ChangePassword 显然是密码更改权限,它只限于当前用户 resource = "arn:aws:iam::*:user/$ {aws:用户名}”。如果您需要限制到特定帐户,请将 * 替换为帐户 ID(不带连字符)。 如 AWS 文档中所述,iam:GetAccountPasswordPolicy 是必需的

    来源:

  • iam:*AccessKey 同时管理当前用户的访问 key :

    • create 允许创建新 key ,这样管理员就不知道 key 了
    • update 允许make inactive Action
    • delete 允许删除访问 key ,因为每个帐户有两个 key 的配额

关于amazon-web-services - 允许 AWS 用户创建自己的第一个访问 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408485/

相关文章:

django - ALLOWED_HOSTS 在部署到 Elastic Beanstalk 的 Django 应用程序中不起作用

node.js - Elasticsearch 抛出 resource_already_exists_exception

r - 如何使用 aws.s3 包函数(write_using 和 read_using)从 EC2 上的 R 访问 S3 数据?

node.js - 在 ElasticBeanstalk 中的 nginx 服务器上启用 cors?

amazon-web-services - 如何使用 IAM 角色假设通过 AWS CLI 运行 aws-nuke

amazon-web-services - 我什么时候需要 CAPABILITY_NAMED_IAM

postgresql - psql:致命:用户 ""aws rds Postgresql 的 PAM 身份验证失败

amazon-web-services - 如何在CloudFormation中生成AWS根账户ARN?

amazon-web-services - 云形成策略生成不正确

amazon-web-services - 使用 AWS glue 合并多个 Parquet 文件并在 s3 中创建更大的 Parquet 文件