代码之家  ›  专栏  ›  技术社区  ›  wwnde

苛刻的天蓝色密钥库secret.name(按要求打印)

  •  0
  • wwnde  · 技术社区  · 5 年前

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

    我成功设置了一个密钥库密码,我能够使用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 ,显示密钥。出于安全考虑,我不希望这种情况发生。是否有办法确保它可以传递到服务中,但当打印出来时,密钥会以特殊字符的形式出现,比如*****或####?

    0 回复  |  直到 5 年前
        1
  •  1
  •   unknown    5 年前

    看来你不能仅仅为了改变打印方法 secret.value 。因此,禁用 print 方法更好。

    你可以使用 blockPrint() 禁用 打印 .

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

    enter image description here

        2
  •  0
  •   Shane Bala    4 年前

    这里有一个代码示例,可以打印出你的秘密值。

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