备份API密钥以进行恢复

时间:2019-02-01 15:12:01

标签: amazon-web-services aws-api-gateway

我正在设计和实施备份计划,以恢复我的客户端API密钥。如何解决这个问题?

为了加快恢复过程,我正在尝试创建一个备份计划,以备份Client API密钥,可能在s3或本地。我过去两天都在为实现这一目标而ing头。可能是某些python脚本或将从apigateway中获取值并转储到新的s3存储桶中的某个东西。但不确定如何实现。

1 个答案:

答案 0 :(得分:0)

您可以使用apigateway get-api-keys获取所有apigateway API密钥列表。这是完整的AWS CLI命令。

aws apigateway get-api-keys --include-values

请记住必须使用--include-values,否则实际的API密钥将不会包含在结果中。 它将以以下格式显示结果。

"items": [
        {
            "id": "j90yk1111",
            "value": "AAAAAAAABBBBBBBBBBBCCCCCCCCCC",
            "name": "MyKey1",
            "description": "My Key1",
            "enabled": true,
            "createdDate": 1528350587,
            "lastUpdatedDate": 1528352704,
            "stageKeys": []
        },
        {
            "id": "rqi9xxxxx",
            "value": "Kw6Oqo91nv5g5K7rrrrrrrrrrrrrrr",
            "name": "MyKey2",
            "description": "My Key 2",
            "enabled": true,
            "createdDate": 1528406927,
            "lastUpdatedDate": 1528406927,
            "stageKeys": []
        },
        {
            "id": "lse3o7xxxx",
            "value": "VGUfTNfM7v9uysBDrU1Pxxxxxx",
            "name": "MyKey3",
            "description": "My Key 3",
            "enabled": true,
            "createdDate": 1528406609,
            "lastUpdatedDate": 1528406609,
            "stageKeys": []
        }
}
]

要获取单个API密钥的API密钥详细信息,请使用下面的AWS CLI命令。

aws apigateway get-api-key --include-value --api-key lse3o7xxxx

它应该显示以下结果。

{
  "id": "lse3o7xxxx",
  "value": "VGUfTNfM7v9uysBDrU1Pxxxxxx",
  "name": "MyKey3",
  "description": "My Key 3",
  "enabled": true,
  "createdDate": 1528406609,
  "lastUpdatedDate": 1528406609,
  "stageKeys": []
}

get-api-keys调用类似,此处必须--include-value,否则实际的API密钥将不包含在结果中

现在,您需要将输出转换为可以保存在s3上的格式,以后可以导入到apigateway。

您可以使用import-api-keys

导入密钥
aws apigateway import-api-keys --body <value> --format <value>
  

-身体(斑点)

     

用于导入API密钥的POST请求的有效负载。对于有效载荷   格式

     

-格式(字符串)

     

一个查询参数,用于指定导入的API密钥的输入格式。   当前,仅支持CSV格式。 --format csv

最简单的样式只有两个字段,例如Key,name

Key,name
apikey1234abcdefghij0123456789,MyFirstApiKey

您可以从API Gateway API Key File Format中查看格式的完整细节。