R 如何将环境变量传递给shinyapps
我想将安全参数传递给shinyapps.io部署,以便我的应用程序可以通过以下方式获取这些参数:R 如何将环境变量传递给shinyapps,r,shiny,R,Shiny,我想将安全参数传递给shinyapps.io部署,以便我的应用程序可以通过以下方式获取这些参数: Sys.getenv('PASSWORD_X') 我在rsconnect软件包的deployApp功能中找不到与此相关的任何内容。您可以使用Renviron.site或.Renviron将私人数据存储并访问到您的应用程序中。() 解决方案: 存储API身份验证密钥/令牌() 如果您的包支持基于API密钥或令牌的身份验证工作流,请鼓励用户将其存储在环境变量中。我们使用github R包来说明这一点,
Sys.getenv('PASSWORD_X')
我在
rsconnect
软件包的deployApp
功能中找不到与此相关的任何内容。您可以使用Renviron.site或.Renviron将私人数据存储并访问到您的应用程序中。()
解决方案: 存储API身份验证密钥/令牌() 如果您的包支持基于API密钥或令牌的身份验证工作流,请鼓励用户将其存储在环境变量中。我们使用github R包来说明这一点,该包封装了github v3 API。根据您的API+包定制此模板,并将其包含在README.md或vignette中
GITHUB_PAT
提醒您这是用于哪个API,并且blahblahblahblahblahblah
是您的个人访问令牌,从剪贴板粘贴
- 请注意,默认情况下,点文件通常是隐藏的。但在RStudio中,文件浏览器将使.Renviron可见,因此将来易于编辑
library(github)
ctx <- create.github.context(access_token = Sys.getenv("GITHUB_PAT"))
# ... proceed to use other package functions to open issues, etc.
库(github)
ctx总的来说是一个好问题。但是关于安全性,一旦你将这些参数传递给shinyapps.io,它们就不再安全了:你已经将它们交给了第三方。这对任何第三方都是正确的,例如亚马逊将拥有我们的密钥BTW,任何其他发送密钥的方法都会很有帮助,以便应用程序可以从S3读取密钥。当前选项Ihave正在以文本文件(例如json)的形式发送密钥,但由于所有aws相关软件包都是以这种方式实现的,因此我必须设置env VAR。如果您真的相信“Amazon将拥有您的密钥”,那么您将不得不严重不信任Amazon EC2管理员或其虚拟机监控程序的实现如果您在EC2实例上使用环境变量作为机密。@hrbrmstr您是对的,我不相信。Shiny也可能是这样。您可以删除有关s3的详细信息,这只是一个示例,但与解决方案无关。查看.Renviron
,我认为这是我真正需要的。需要使用shinyapps进行测试。乐意帮助-获取careThis在我的Shiny应用程序的根目录中创建了.Renviron文件的副本后对我起了作用。从安全角度来看,将.Renviron
中的API密钥部署到shinyapps.io是否安全?Lauren,我相信这取决于文件权限。就我个人而言,我不相信这个答案。你可能需要向RStudio a查询Tsecurity@rstudio.com我给RStudio发了一封电子邮件。。。