首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不插入策略变量的AWS IoT策略(iot:ClientId)

不插入策略变量的AWS IoT策略(iot:ClientId)
EN

Stack Overflow用户
提问于 2020-03-19 14:43:04
回答 1查看 390关注 0票数 0

正如本文档https://aws.amazon.com/blogs/iot/setting-up-just-in-time-provisioning-with-aws-iot-core/中所解释的那样,我正在尝试设置及时配置(JITP)。我已经成功地创建了一个脚本,该脚本创建了所有CA证书,将它们注册到AWS,并将一个配置模板附加到证书上。当我第一次尝试连接一个设备时,证书和设备是正常创建的,但是我创建的附加到证书的策略并不是插入{iot:clientID}。我也尝试过使用其他变量,如{iot:Connection.Thing.ThingName},但似乎没有任何东西起作用。我能够通过将clientID硬编码到策略模板中来验证代码和其他一切是否有效,因此唯一的问题似乎是变量没有被插入。

我想这可能是因为IAM角色没有足够的权限?目前,它只具有上面文档中提到的AWSIoTThingsRegistration、AWSIOTLogging和AWSIOTRulesAction权限。或者可能只是在自动配置设备时,策略不能使用这些变量,尽管在配置模板文档中没有什么可以说明这一点?

我的政策以供参考:

代码语言:javascript
复制
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iot:Publish",
      "Resource": "arn:aws:iot:eu-west-1:ACCOUNTID:topic/PROJECTTOPIC/"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Connect"
      ],
      "Resource": [
        "arn:aws:iot:eu-west-1:ACCOUNTID:client/${iot:ClientId}"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "iot:Receive",
      "Resource": [
        "arn:aws:iot:eu-west-1:ACCOUNTID:topic/PROJECTTOPIC/${iot:ClientId}"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "iot:Subscribe",
      "Resource": [
        "arn:aws:iot:eu-west-1:ACCOUNTID:topicfilter/PROJECTTOPIC/${iot:ClientId}"
      ]
    }
  ]
}

我不知道这是否相关,但这也是我的供应政策:

代码语言:javascript
复制
{
 "templateBody":"{ \"Parameters\" : { \"AWS::IoT::Certificate::Country\" : { \"Type\" : \"String\" }, \"AWS::IoT::Certificate::Id\" : { \"Type\" : \"String\" }, \"AWS::IoT::Certificate::CommonName\" : { \"Type\" : \"String\" } }, \"Resources\" : { \"thing\" : { \"Type\" : \"AWS::IoT::Thing\", \"Properties\" : { \"ThingName\" : {\"Ref\" : \"AWS::IoT::Certificate::CommonName\"}, \"AttributePayload\" : { \"version\" : \"v1\", \"country\" : \"IE\"} } }, \"certificate\" : { \"Type\" : \"AWS::IoT::Certificate\", \"Properties\" : { \"CertificateId\": {\"Ref\" : \"AWS::IoT::Certificate::Id\"}, \"Status\" : \"ACTIVE\" } }, \"policy\" : {\"Type\" : \"AWS::IoT::Policy\", \"Properties\" : { \"PolicyName\" :  \"MYPOLICYNAME\"} } } }",
 "roleArn":"arn:aws:iam::ACCOUNTID:role/MYROLENAME"
}

我对使用IAM策略相当陌生,所以任何建议或帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-20 10:22:59

因此,这毕竟是一个权限问题。对于试图使用JITP策略模板的任何人,请尝试将AWSIoTConfigReadOnlyAccess添加到您的IAM角色中。对于通常的JITP操作来说,这不是必需的,但是如果您试图访问事物数据,它是必需的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60759446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档