我正在设计和实施备份计划,以恢复我的客户端API密钥。如何解决这个问题?
为了加快恢复过程,我正在尝试创建一个备份计划,以备份Client API密钥,可能在s3或本地。我过去两天都在为实现这一目标而ing头。可能是某些python脚本或将从apigateway中获取值并转储到新的s3存储桶中的某个东西。但不确定如何实现。
答案 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中查看格式的完整细节。