問題タブ [azure-rbac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 「提供された情報が AD オブジェクト ID にマップされていません」というエラーが表示されるのはなぜですか? サービス プリンシパルを使用して New-AzRoleAssignment を実行するときは?
Azure DevOps パイプラインで Powershell を使用して、キー コンテナーのプリンシパルにロールStorage Account Key Operator Service Role
をストレージ アカウントに割り当てようとしています。
コマンドライン
コマンド ラインは、サービス プリンシパルを使用して Azure に接続した後に実行されます。
実行するコマンドラインは次のとおりです。
どこ:
$keyVaultServicePrincipalId
Key Vaultの事前登録済みプリンシパル IDです。その値はcfa8b339-82a2-471a-a3c9-0fc0be7a4093
です。$resourceGroupName
ストレージが配置されているリソース グループの名前です。その値はaccountsmanager-test-global-rg
です。$storageAccountName
私のストレージアカウントの名前です。その値はaccountsmanagertest
です。
サービスプリンシパル
コマンドが実行されるサービス プリンシパルのアクセス許可は次のとおりです。
コマンドは、サブスクリプションで所有者ロールを持つサービス プリンシパルとして実行されます。
そのサブスクリプションで作成されたリソース グループも、そのサービス プリンシパルによって所有されます。
質問
コマンドを実行すると、次のエラーが表示されます。
The provided information does not map to an AD object id.
コマンドの実行時にエラーが発生するのはなぜNew-AzRoleAssignment
ですか?
python-3.x - Azure AD のプリンシパル ID をユーザー、サービスに解決する
プリンシパル ID のリストをユーザー/サービスの名前などの詳細に解決しようとしています。私は次のコードを持っています -
stackoverflow ページの 1 つでアドバイスに従ってみましたが、エラーが発生しました (以下を参照)。これらのプリンシパル ID を人間が理解できる形式に解決する方法についてのガイダンスをいただければ幸いです。
エラー -
azure.graphrbac.models.graph_error_py3.GraphErrorException: プロパティ 'principal_id' は、宣言されたプロパティまたは拡張プロパティとして存在しません。
エラー -
msrest.exceptions.SerializationError: モデルを構築できません: オブジェクトに逆シリアル化できません: 型、AttributeError: 'str' オブジェクトに属性 'get' がありません, DeserializationError: オブジェクトに逆シリアル化できません: 型、AttributeError: 'str' オブジェクトが持っています属性「get」はありません
azure-functions - Azure Python 関数とマネージド ID を使用してストレージ アカウントからダウンロードする
Azure Data Lake / Storage にデータをアップロードおよびダウンロードする必要がある Python で記述された "transformerfunction" という Azure 関数を作成しました。また、システム割り当てマネージド ID を有効にし、ストレージ アカウントで "Storage Blob Data Contributor" ロール アクセス許可を関数に付与しました。
ファイルを認証してダウンロードするには、基本的にこれらのドキュメントに従って、コードのこの部分を使用します。
私の理解が正しければ、Azure は関数の ID を認証に使用する必要があり、この ID にはストレージに対する Storage Blob Data Contributor のアクセス許可があるため、ダウンロードは機能するはずです。
ただし、関数を呼び出してログを確認すると、次のように表示されます。
これは、関数がブロブをダウンロードする権利を持っていないことを明確に示しています。しかし、なぜ?どうすればいいですか?
編集:
問題の原因がわかりました。ネットワーク設定で Data Lake ストレージを次のように制限しました。
私の仮定では、「信頼できる Microsoft サービスにこのストレージ アカウントへのアクセスを許可する」は、Azure で実行されている Functions が、選択されているかどうか、またはどのネットワークが選択されているかに関係なく、常にストレージにアクセスできるようにするというものでした。これは事実ではありません。