如何测试AWS IoT Device Defender中设备证书过期审计缓解动作?
我正在AWS IoT的Manage > Security > Audit > Audit Results > Audit Create路径下创建审计缓解动作,想要创建审计任务检查设备证书是否已过期或即将过期。根据缓解动作文档,DEVICE_CERTIFICATE_EXPIRING_CHECK审计检查支持PUBLISH_FINDING_TO_SNS、UPDATE_DEVICE_CERTIFICATE、ADD_THINGS_TO_THING_GROUP这些缓解动作。我希望运行UPDATE_DEVICE_CERTIFICATE,但不知道如何触发该事件——触发它需要存在已过期或31天内即将过期的证书。而创建Thing时,所有证书的过期日期默认都是2049年12月31日,且无法在创建证书时设置过期日期,请问该如何测试这一流程?
1. 生成自定义有效期的设备证书
AWS IoT默认生成的证书有效期固定为2049年,但你可以通过上传自定义CSR(证书签名请求)来签发任意有效期的证书:
使用OpenSSL生成私钥和带指定有效期的CSR:
# 生成2048位RSA私钥 openssl genrsa -out test-device-key.pem 2048 # 生成CSR,设置有效期为30天(满足"31天内即将过期"的触发条件) openssl req -new -key test-device-key.pem -out test-device-csr.pem -days 30如果要测试已过期证书的场景,将
-days参数设为负数(比如-days -1),签发的证书会直接处于过期状态。登录AWS IoT控制台,进入Manage > Security > Certificates,选择Create > Create certificate > Use my certificate signing request (CSR),上传生成的
test-device-csr.pem,完成证书签发。
2. 配置证书与Thing的关联
- 将新生成的证书关联到一个测试Thing(若没有则先创建测试用Thing)。
- 激活该证书,确保其处于
ACTIVE状态。
3. 触发审计与缓解动作
- 回到Manage > Security > Audit > Audit Create,创建针对
DEVICE_CERTIFICATE_EXPIRING_CHECK的审计任务,并绑定UPDATE_DEVICE_CERTIFICATE缓解动作。 - 手动触发审计任务执行,系统会检测到符合条件的证书,自动触发
UPDATE_DEVICE_CERTIFICATE动作——该动作会生成新的有效证书、关联到原Thing,并失效旧证书。
内容的提问来源于stack exchange,提问作者IgorAlves

