

**本文档仅适用于 AWS CLI 版本 1。**

我们已宣布即将终止对 AWS CLI 版本 1 的支持。建议您迁移到 AWS CLI 版本 2。有关日期、其它详细信息以及如何迁移的信息，请参阅[公告](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/)。有关 AWS CLI 版本 2 的相关文档，请参阅[版本 2 用户指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

# 在 AWS CLI 中使用 IAM
<a name="cli-services-iam"></a>


| AWS Identity and Access Management 简介 | 
| --- | 
|    | 

您可以使用 AWS Command Line Interface (AWS CLI) 访问 AWS Identity and Access Management (IAM) 的功能。要列出 IAM 的 AWS CLI 命令，请使用以下命令。

```
aws iam help
```

本主题显示执行 IAM 常见任务的 AWS CLI 命令。

在运行任何命令之前，请设置默认证书。有关更多信息，请参阅 [配置 AWS CLI 设置](cli-chap-configure.md)。

有关 IAM 服务的更多信息，请参阅 [AWS Identity and Access Management 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)。

**Topics**
+ [创建 IAM 用户和组](#cli-services-iam-new-user-group)
+ [将 IAM 托管式策略附加到用户](#cli-services-iam-policy)
+ [为 IAM 用户设置初始密码](#cli-services-iam-set-pw)
+ [为 IAM 用户创建访问密钥](#cli-services-iam-create-creds)

## 创建 IAM 用户和组
<a name="cli-services-iam-new-user-group"></a>

**创建组并向其中添加新用户**

1. 使用 [https://docs.aws.amazon.com/cli/v1/reference/iam/create-group.html](https://docs.aws.amazon.com/cli/v1/reference/iam/create-group.html) 命令创建组。

   ```
   $ aws iam create-group --group-name MyIamGroup
   {
       "Group": {
           "GroupName": "MyIamGroup",
           "CreateDate": "2018-12-14T03:03:52.834Z",
           "GroupId": "AGPAJNUJ2W4IJVEXAMPLE",
           "Arn": "arn:aws:iam::123456789012:group/MyIamGroup",
           "Path": "/"
       }
   }
   ```

1. 使用 [https://docs.aws.amazon.com/cli/v1/reference/iam/create-user.html](https://docs.aws.amazon.com/cli/v1/reference/iam/create-user.html) 命令创建用户。

   ```
   $ aws iam create-user --user-name MyUser
   {
       "User": {
           "UserName": "MyUser",
           "Path": "/",
           "CreateDate": "2018-12-14T03:13:02.581Z",
           "UserId": "AIDAJY2PE5XUZ4EXAMPLE",
           "Arn": "arn:aws:iam::123456789012:user/MyUser"
       }
   }
   ```

1. 使用 [https://docs.aws.amazon.com/cli/v1/reference/iam/add-user-to-group.html](https://docs.aws.amazon.com/cli/v1/reference/iam/add-user-to-group.html) 命令将用户添加到组。

   ```
   $ aws iam add-user-to-group --user-name MyUser --group-name MyIamGroup
   ```

1. 要验证 `MyIamGroup` 组包含 `MyUser`，请使用 [https://docs.aws.amazon.com/cli/v1/reference/iam/get-group.html](https://docs.aws.amazon.com/cli/v1/reference/iam/get-group.html) 命令。

   ```
   $ aws iam get-group --group-name MyIamGroup
   {
       "Group": {
           "GroupName": "MyIamGroup",
           "CreateDate": "2018-12-14T03:03:52Z",
           "GroupId": "AGPAJNUJ2W4IJVEXAMPLE",
           "Arn": "arn:aws:iam::123456789012:group/MyIamGroup",
           "Path": "/"
       },
       "Users": [
           {
               "UserName": "MyUser",
               "Path": "/",
               "CreateDate": "2018-12-14T03:13:02Z",
               "UserId": "AIDAJY2PE5XUZ4EXAMPLE",
               "Arn": "arn:aws:iam::123456789012:user/MyUser"
           }
       ],
       "IsTruncated": "false"
   }
   ```

## 将 IAM 托管式策略附加到用户
<a name="cli-services-iam-policy"></a>

此示例中的策略为用户提供“高级用户访问”。

**将 IAM 托管式策略附加到用户**

1. 确定要附加的策略的 Amazon 资源名称 (ARN)。以下命令使用 `list-policies` 查找具有名称 `PowerUserAccess` 的策略的 ARN。然后，它会将该 ARN 存储在环境变量中。

   ```
   $ export POLICYARN=$(aws iam list-policies --query 'Policies[?PolicyName==`PowerUserAccess`].{ARN:Arn}' --output text)       ~
   $ echo $POLICYARN
   arn:aws:iam::aws:policy/PowerUserAccess
   ```

1. 要附加策略，请使用 [https://docs.aws.amazon.com/cli/v1/reference/iam/attach-user-policy.html](https://docs.aws.amazon.com/cli/v1/reference/iam/attach-user-policy.html)[https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html) 命令，并引用存放策略 ARN 的环境变量。

   ```
   $ aws iam attach-user-policy --user-name MyUser --policy-arn $POLICYARN
   ```

1. 通过运行 [https://docs.aws.amazon.com/cli/v1/reference/iam/list-attached-user-policies.html](https://docs.aws.amazon.com/cli/v1/reference/iam/list-attached-user-policies.html) 命令验证策略已附加到此用户。

   ```
   $ aws iam list-attached-user-policies --user-name MyUser
   {
       "AttachedPolicies": [
           {
               "PolicyName": "PowerUserAccess",
               "PolicyArn": "arn:aws:iam::aws:policy/PowerUserAccess"
           }
       ]
   }
   ```

有关更多信息，请参阅 [访问管理资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-additional-resources.html)。该主题提供权限和策略概览的链接以及用于访问 Amazon S3、Amazon EC2 和其他服务的示例策略的链接。

## 为 IAM 用户设置初始密码
<a name="cli-services-iam-set-pw"></a>

以下命令使用 `[create-login-profile](https://docs.aws.amazon.com/cli/v1/reference/iam/create-login-profile.html)` 为指定用户设置初始密码。当用户首次登录时，用户需要将密码更改为只有用户知道的内容。

```
$ aws iam create-login-profile --user-name MyUser --password My!User1Login8P@ssword --password-reset-required
{
    "LoginProfile": {
        "UserName": "MyUser",
        "CreateDate": "2018-12-14T17:27:18Z",
        "PasswordResetRequired": true
    }
}
```

您可以使用 `update-login-profile` 命令*更改*用户的密码。

```
$ aws iam update-login-profile --user-name MyUser --password My!User1ADifferentP@ssword
```

## 为 IAM 用户创建访问密钥
<a name="cli-services-iam-create-creds"></a>

您可以使用 [https://docs.aws.amazon.com/cli/v1/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/v1/reference/iam/create-access-key.html) 命令为用户创建访问密钥。访问密钥是一组安全凭证，由访问密钥 ID 和私有密钥组成。

用户一次只能创建两个访问密钥。如果您尝试创建第三组，则命令返回 `LimitExceeded` 错误。

```
$ aws iam create-access-key --user-name MyUser
{
    "AccessKey": {
        "UserName": "MyUser",
        "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "Status": "Active",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
        "CreateDate": "2018-12-14T17:34:16Z"
    }
}
```

使用 [https://docs.aws.amazon.com/cli/v1/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/v1/reference/iam/delete-access-key.html) 命令为用户删除访问密钥。使用访问密钥 ID 指定要删除的访问密钥。

```
$ aws iam delete-access-key --user-name MyUser --access-key-id AKIAIOSFODNN7EXAMPLE
```