
# 密钥定期自动化轮换
#### 场景描述
企业用户通常都会使用访问密钥（AK/SK）的方式对云上资源的进行API访问，但是访问密钥需要做到定期的自动轮换，以降低密钥泄露等潜在的安全风险。
本章节指导用户如何使用API调用的方式轮换访问密钥，您可进一步通过编程手段完成定期自动轮换工作。
#### 前提条件
[账号管理员](https://support.huaweicloud.com/usermanual-iam/iam_01_0001.html)操作其他[IAM用户](https://support.huaweicloud.com/usermanual-iam/iam_01_0001.html)的访问密钥时，需要拥有Security Administrator权限，IAM用户操作自己的访问密钥无需任何权限。
#### 总体思路
定期轮换访问密钥（AK/SK）时，步骤如下：
1. 创建AK/SK；
2. 查询您所有AK/SK的创建时间（或指定AK/SK的创建时间），判断使用时间是否需要轮换；
3. 更换新的AK/SK。
4. 删除需要轮换的AK/SK；
涉及的接口如下：
- [创建永久访问密钥](https://support.huaweicloud.com/api-iam/iam_03_0001.html)
- [查询所有永久访问密钥](https://support.huaweicloud.com/api-iam/iam_03_0003.html)
- [查询指定永久访问密钥](https://support.huaweicloud.com/api-iam/iam_03_0002.html)
- [删除指定永久访问密钥](https://support.huaweicloud.com/api-iam/iam_03_0005.html)
 
 #### 步骤1：创建永久AK/SK
URI：POST /v3.0/OS-CREDENTIAL/credentials
API文档详情请参见：[创建永久访问密钥 - CreatePermanentAccessKey](https://support.huaweicloud.com/api-iam/iam_03_0001.html)
API Explorer在线调试请参见：[创建永久访问密钥](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IAM&api=CreatePermanentAccessKey)
- 请求示例
  ```
  POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/credentials
  ```
  ```
  {
      "credential": {
          "description": "IAMDescription",
          "user_id": "07609fb9358010e21f7bc003751..."
      }
  }
  ```
  

- 响应示例
  ```
  {
      "credential": {
          "access": "P83EVBZJMXCYTMUII...",
          "create_time": "2020-01-08T06:25:19.014028Z",
          "user_id": "07609fb9358010e21f7bc003751...",
          "description": "IAMDescription",
          "secret": "TTqAHPbhWorg9ozx8Dv9MUyzYnOKDppxzHt...",
          "status": "active"
      
  }
  ```
  
 
#### 步骤2：查询AK/SK的创建时间（或查询指定AK/SK的创建时间）
- 查询所有AK/SK的创建时间。 URI：GET /v3.0/OS-CREDENTIAL/credentials
  API文档详情请参见：[查询所有永久访问密钥 - ListPermanentAccessKeys](https://support.huaweicloud.com/api-iam/iam_03_0003.html)
  API Explorer在线调试请参见： [查询所有永久访问密钥](https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/debug?api=ListPermanentAccessKeys)
  - 请求示例 1) IAM用户查询自己所有AK/SK的创建时间。
    ```
    GET https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/credentials
    ```
    2) 管理员查询IAM用户所有AK/SK的创建时间。(待查询的用户ID为:076...)
    ```
    GET https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/credentials?user_id=076...
    ```
    
  
  - 响应示例
    ```
    {
        "credentials": [
            {
                "access": "LOSZM4YRVLKOY9E8X...",
                "create_time": "2020-01-08T06:26:08.123059Z",
                "user_id": "07609fb9358010e21f7bc0037...",
                "description": "",
                "status": "active"
            },
            {
                "access": "P83EVBZJMXCYTMU...",
                "create_time": "2020-01-08T06:25:19.014028Z",
                "user_id": "07609fb9358010e21f7bc003751...",
                "description": "",
                "status": "active"
            }
        ]
    }
    ```
    
   

- 查询指定AK/SK的创建时间。 URI：GET /v3.0/OS-CREDENTIAL/credentials/{access_key}
  API文档详情请参见：[查询指定永久访问密钥 - ShowPermanentAccessKey](https://support.huaweicloud.com/api-iam/iam_03_0002.html)
  API Explorer在线调试请参见：[查询指定永久访问密钥](https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/doc?api=ShowPermanentAccessKey)
  - 请求示例
    ```
    GET https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/credentials/{access_key}
    ```
    
  
  
  
  - 响应示例
    ```
    {
        "credential": {
            "last_use_time": "2020-01-08T06:26:08.123059Z",
            "access": "LOSZM4YRVLKOY9E8...",
            "create_time": "2020-01-08T06:26:08.123059Z",
            "user_id": "07609fb9358010e21f7bc00375....",
            "description": "",
            "status": "active"
        }
    }
    ```
    
   
 
#### 步骤3：更换新的AK/SK
更换新的AK/SK，请重复[步骤1 创建永久AK/SK]。
#### 步骤4：删除需要轮换的AK/SK
URI：DELETE /v3.0/OS-CREDENTIAL/credentials/{access_key}
API文档详情请参见：[删除指定永久访问密钥 - DeletePermanentAccessKey](https://support.huaweicloud.com/api-iam/iam_03_0005.html)
API Explorer在线调试请参见：[删除指定永久访问密钥](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IAM&api=DeletePermanentAccessKey)
- 请求示例
  ```
  DELETE https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/credentials/{access_key}
  ```
  

- 响应示例 该接口无返回体，状态码为204表示删除成功。
  
 
