Несанкционированный доступ Python SDK к хранилищу ключей - PullRequest
0 голосов
/ 26 февраля 2019
def auth_callback(server, resource, scope):
    credentials = ServicePrincipalCredentials(
        client_id = os.getenv('ARM_CLIENT_ID'),
        secret = os.getenv('ARM_CLIENT_SECRET'),
        tenant = os.getenv('ARM_TENANT_ID'),
        resource = "https://vault.azure.net/"
    )
    token = credentials.token
    return token['token_type'], token['access_token']  

kv_client = KeyVaultClient(KeyVaultAuthentication(auth_callback))
secret = kv_client.get_secret("https://xxx.vault.azure.net/", "CLIENT-SECRET", KeyVaultId.version_none).value.encode()

точно такой же код работает в 2 разных арендаторах (не работает в этом третьем).Участник службы приложений получил права владельца на подписку (просто чтобы быть уверенным), дал определенные секретные разрешения, перепробовал все разрешения, попробовал также включить расширенные разрешения (просто заголовок, я нажимаю кнопку save), дать доступиспользуя и портал, и PowerShell (один и тот же конечный результат).

Я видел это:
Как исправить ошибку «Операция« набор »не разрешена» при программном создании секретного ключа Azure KeyVault?
Хранилище ключей Azure: доступ запрещен

точная ошибка:

secret = kv_client.get_secret("https://xxx.vault.azure.net/", "CLIENT-SECRET", KeyVaultId.version_none).value.
File "/usr/local/lib/python3.6/site-packages/azure/keyvault/v7_0/key_vault_client.py", line 1846, in get_secret
raise models.KeyVaultErrorException(self._deserialize, response)
azure.keyvault.v7_0.models.key_vault_error_py3.KeyVaultErrorException: Operation returned an invalid status code 'Unauthorized'

1 Ответ

0 голосов
/ 26 февраля 2019

это выглядит так:

resource = "https://vault.azure.net/"

должно быть так:

resource = "https://vault.azure.net"

иначе ничего не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...