gpt4 book ai didi

r - 如何安全地向运行 R 脚本的 Azure 批处理服务提供 secret

转载 作者:行者123 更新时间:2023-12-03 06:57:09 26 4
gpt4 key购买 nike

我正在尝试找到一种方法来向我的批处理服务作业提供敏感数据。数据是 R 脚本中用于连接到 SQL 并获取表的 sql 连接凭据。因此,如果我们在批处理工作目录中有一个配置文件,则代码如下所示。

    dbConfig <- config::get(file = "config.yml")

db_connect <- function(database_config_name){
dbConfig <- config::get(database_config_name)
connection <- DBI::dbConnect(odbc::odbc(),
Driver = dbConfig$driver,
Server = dbConfig$server,
UID = dbConfig$uid,
PWD = dbConfig$pwd,
Database = dbConfig$database,
encoding = "UTF-8"
)

为了创建这个配置文件,我找到了 AzureKeyVault包以对 Azure Key Vault 中的 secret 进行身份验证,并将文件写入 Azure 批处理环境。所以代码可以如下所示:

devtools::install_github("Azure/AzureKeyVault")

vault <- AzureKeyVault::key_vault("https://mykeyvault.vault.azure.net")
secret <- vault$secrets$get("secretname")


yaml::write_yaml(secret$value,"config.yml")

dbConfig <- config::get(file = "config.yml")

然后是我想对 secret 进行的操作并最终将其删除:

unlink("config.yml", recursive = FALSE, force = TRUE)

这个操作的问题在于,它不是自动认证,控制台上打印了以下命令:

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and 

enter the code xxxxxxxx to authenticate.
Waiting for device code in browser...

这不是我想要的。我希望 Azure 批量自动进行身份验证并获取 secret 。或者是否有任何其他安全方式向 azure 批处理提供 secret 。

最佳答案

您需要使用应用程序身份验证来初始化您的保管库:

cert  <- PKI.load.cert(file=system.file("certs", "app_cert.pfx", package="PKI"))
token <- AzureAuth::get_azure_token("https://vault.azure.net", "myaadtenant",
app="app_id", certificate=cert)
vault <- AzureKeyVault::key_vault("mykeyvault", token=token)

或者(推荐),使用 Managed Identity :

vault <- AzureKeyVault::key_vault("mykeyvault", as_managed_identity=TRUE)

关于r - 如何安全地向运行 R 脚本的 Azure 批处理服务提供 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72827309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com