コード中にサブスクリプションへのログインが必要です。ログインするということはそのための資格情報が必要となりますが、コード中に資格情報もセットで記述するようなことは避けたいと思います。マネージドIDを使用することで、コード中にログインアカウントやパスワードを記述せずともサブスクリプションへのログインが可能になります。Docs今回はマネージドIDの概要と使い方、注意点について紹介します。ADのIDを与え、仮想マシンやその他対応したサービス上でそのアカウントを使用して認証を行うことができる、という機能です。AD上で表示されません。マネージドIDには、以下の2種類があります。Serviceなど)毎に、専用のIDを作成する方式です。設定を有効にすることで、そのサービス専用のマネージドIDがAzureADに作成され、サービス上でそれを利用することが可能になります。Azureサービスを削除する際に、マネージドIDも一緒に削除されます。マネージドIDを、Azureリソースとして作成し、複数のサービスで共用する方式です。IDを作成後、各Azureサービスに割り当てることでサービス上での利用が可能になります。Azureサービスを削除しても、マネージドIDは別リソースのため削除されません。対応したサービスにて、マネージドID設定画面を開き、[システムマネージドID]タブの状態を[オン]にします。※今回はVMを利用しているので[ID]画面を開きます。確認画面が表示されるため、[はい]を選択すると、そのサービス専用のマネージドIDがAzureADに作成されます。これで有効化は完了です。最初に割り当てるためのリソースを作成します。全てのサービスから[マネージドID]を選択し、[追加]を行います。名前、リソースグループ、リージョンを選んで作成します。先ほどと同様[ID]画面を開き、[ユーザー割り当て済み]タブの[追加]を行います。作成したIDリソースの割り当てを行います。これで有効化は完了です。マネージドIDへの権限付与マネージドIDの有効化は上記でOKですが、各種Azureサービス用のIDであるため、ユーザーIDにするのと同様に、権限の割当てが必要です。具体的にはマネージドIDに対して、サブスクリプションやリソースグループへのロール割り当て(所有者、閲覧者など)を行います。例としてリソースグループへの閲覧者権限を追加します。リソースグループの[アクセス制御]から[追加]、[ロールの割り当て]を選択します。[アクセスの割り当て先]としてマネージドIDを指定することができます。保存を押して権限割り当ては完了です。CLI/PowerShellにログインしてみます。Logout-AzAccountの実行も可能になります。CLIにログインするには、以下のコマンドを使用します。実行することでログインが完了し、通常通りコマンドを使用できるようになります。PowerShellにログインするには、以下のコマンドを使用します。-identity注意点マネージドIDを用いることで、仮想マシン上にアカウント情報を保持せずに資格情報を持たせることが可能ですが、仕組み上注意すべきと思う点があります。それは、マネージドIDに付与する権限の強さです。マネージドIDとは、Azureサービス/リソースそのものにAzure環境の操作権限を与えていることになります。今回のようにVMにマネージドIDを付与した場合、OSにログインしCLI/PowerShellを実行可能なユーザーであれば誰でも、本来はAzureサブスクリプションの権限がないユーザーでも、VMの持つ権限を借りてAzure環境を操作するコマンドの実行が可能になります。そのため、本来権限を持たないユーザーがリソースの作成や削除を実行可能な、抜け穴のような状況を作らないよう、マネージドIDに与える権限はよく検討した方が良いと思います。おわりにマネージドIDについて前々から存在は知っていたものの、使う機会がなく、たまたま試す機会があったので今回まとめてみました。記載したようなVMで直接リソースの操作権限を持つようなことはあまりなく、読み取りでストレージのキーを取得したりアプリとAzureリソースの連携で使ったりの方が多いのかなぁと思いつつ。権限の振り方に気を付けて使えば便利な機能だと思うので、そんなものもあるんだ、と知ってもらえればいいなと思います。発言は個人の見解であり、所属組織の公式な見解ではありません。問い合わせ問い合わせスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。