繁体   English   中英

将AWS Lambda调用限制为一项Alexa技能

[英]Restrict AWS Lambda invocation to a single Alexa skill

我正在尝试学习Alexa技能编程,其中一部分是我在Amazon开发人员门户和相应的AWS Lambda函数中设置了技能界面。 该技能运行良好,但我对Lambda函数的安全性有疑问。 我选择了Alexa Skill Kit作为Lambda函数的触发器,并且还将请求中的应用程序ID与该技能的应用程序ID进行比较,以验证请求是否针对该功能。 https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/handling-requests-sent-by-alexa )。

但是即使如此,我如何仍然限制Lambda函数由另一种了解Lambda arn的技能来调用? 不能滥用它来浪费计算资源等吗?

您已经回答了自己的问题。 由于您正在lambda函数中检查此特定的Alexa技能ID,因此几乎不可能从该技能以外的任何地方调用它。 例如:

exports.handler = function(event, context, callback){
  var alexa = Alexa.handler(event, context, callback);
  // security so this set APP_ID from this specific Alexa skill is the onlly one that can execute this code
  alexa.appId = APP_ID;
  alexa.registerHandlers(handlers);
  alexa.execute();
};

如果您的特定Alexa技能仅有权执行此功能,则APP_ID是ID。

希望这可以帮助您前进。

AWS仪表板中用于lambda函数的新功能是为Alexa设备创建角色时的复选框,该复选框允许您通过选中该框并输入技能ARN来锁定仅针对特定技能应用程序的lambda函数,lambda函数仅可被该应用程序调用。 前面提到的方法包括alexa.appId = APP_ID; lambda函数调用中的变量是第二次安全检查,因此推荐两种方法。

ARN对您完全是私人的,您可以决定是否将其触发另一个触发器。 如果仍然要限制,则可以在IAM中创建自定义角色,然后将该角色分配给lambda。 然后,只有具有特定角色的触发器才能执行lambda。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM