【问题标题】:Harsh azure key-vault secret.name when requested o print要求打印时使用苛刻的 azure key-vault secret.name
【发布时间】:2021-01-14 16:11:17
【问题描述】:

我已经检查了所有相关问题,但没有找到合适的答案。

我已经成功设置了一个 keyvault 密码,我可以使用 python 访问它并将其解析到我的 ArcGIS 在线服务中,使用以下代码没有任何问题;

from arcgis.gis import GIS
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

credential = DefaultAzureCredential()
secret_client = SecretClient(vault_url="vaulturl", credential=credential)
secret = secret_client.get_secret("papa-mama-Secret")

gis = GIS("urlGIS", "AGOLaccountname", secret.value)

问题是当我打印secret.value 时,会显示密钥。出于安全原因,我不希望这种情况发生。是否可以确保它可以传递到服务中,但是在打印时,密钥会以特殊字符形式出现,例如 ***** 或 ####?

【问题讨论】:

    标签: azure gis arcgis azure-keyvault password-encryption


    【解决方案1】:

    您似乎无法仅为secret.value 更改打印方法。所以,最好禁用print 方法。

    您可以使用blockPrint() 禁用print

    def blockPrint():
        sys.stdout = open(os.devnull, 'w')
    

    【讨论】:

    • 这是一个有趣的提议,我感谢你,因为我的把戏的包里没有它。但是,我希望 Azure 有内置机制,如果打印出来的密钥会加密,但在解析成内联代码时会解密。
    【解决方案2】:

    这是一个代码示例,用于打印您的秘密值。

    ## CALL TO KEY VAULT TO GET SECRET
    secret = client.get_secret("test").value
    
    ## OUTPUT SECRET VALUE TO CONSOLE
    print(secret)
    

    【讨论】:

    • 请再次阅读问题。我的挑战是如何确保打印输出非纯文本的任何尝试。
    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 2019-12-01
    • 2019-06-09
    • 1970-01-01
    • 2017-01-19
    • 2020-04-26
    • 2020-02-09
    • 1970-01-01
    相关资源
    最近更新 更多