如何更新 AWS IoT 中的事物证书?
How to update a thing certificate in AWS IoT?
假设我知道事物名称和具有相同值的属性,如何更新 AWS IoT 中现有事物的证书? IE。该事物具有名称 "foo"
和属性 "id=foo"
.
根据有限的文档,我假设我做了类似的事情:
- 注册替换证书(
RegisterCertificate
)
- 查找现有事物(
ListThings
,按属性过滤)
- 将新证书附加到事物(
AttachThingPrincipal
?)
怎么找到旧证书(有没有比ListCertificates
和分页更好的办法了)??
将旧证书更新为无效 (UpdateCertificate
)
任何人都可以确认正确、最简洁的方法吗?
我欢迎更好的解决方案,但这对我有用:
- 再次调用
RegisterThing
(相同的 ThingName,相同的策略,不同的证书)。这似乎给我的东西附加了一个新证书。
- 已调用
ListThingPrincipals
,过滤 ThingName。结果将是表示与事物关联的证书的 ARN 列表,格式为 arn:aws:iot:<region>:<account id>:cert/<cert id>
.
- 遍历列表,去掉证书 ID 并调用
DescribeCertificate
,将证书 ID 作为参数。
- 将结果(包括证书的 PEM 格式)与新证书进行比较。如果不匹配,则这是以前的证书之一。因此,调用
UpdateCertificate
并将该证书标记为 INACTIVE
.
假设我知道事物名称和具有相同值的属性,如何更新 AWS IoT 中现有事物的证书? IE。该事物具有名称 "foo"
和属性 "id=foo"
.
根据有限的文档,我假设我做了类似的事情:
- 注册替换证书(
RegisterCertificate
) - 查找现有事物(
ListThings
,按属性过滤) - 将新证书附加到事物(
AttachThingPrincipal
?) 怎么找到旧证书(有没有比
ListCertificates
和分页更好的办法了)??将旧证书更新为无效 (
UpdateCertificate
)
任何人都可以确认正确、最简洁的方法吗?
我欢迎更好的解决方案,但这对我有用:
- 再次调用
RegisterThing
(相同的 ThingName,相同的策略,不同的证书)。这似乎给我的东西附加了一个新证书。 - 已调用
ListThingPrincipals
,过滤 ThingName。结果将是表示与事物关联的证书的 ARN 列表,格式为arn:aws:iot:<region>:<account id>:cert/<cert id>
. - 遍历列表,去掉证书 ID 并调用
DescribeCertificate
,将证书 ID 作为参数。 - 将结果(包括证书的 PEM 格式)与新证书进行比较。如果不匹配,则这是以前的证书之一。因此,调用
UpdateCertificate
并将该证书标记为INACTIVE
.