私のAzureサブスクリプションで特定のアクションをとるPowerShellコードを持っているとしましょう。私はそれが私のAzureユーザー名かAzureサービスプリンシパルを使用してAzureにログインしなければならないことを理解しました。あなたのPowerShellコードでAzureサービスプリンシパルを保護する方法
私の場合、多くの人がこのコードを使用する予定であり、誰もが私のサブスクリプションにアクセスすることを望まないため、サービスプリンシパルを使用したいと考えています。したがって、私はこのSPにのみアクセスできます。
SPを使ってログインするには、アプリケーションIDとキーを自分のコードに含める必要があります。私のコードが侵害された場合、社外の誰かがアプリケーションIDとキーを使用してログに記録できます私のサブスクリプションのものをやります。
このようなセキュリティリスクから自分を守る方法はありますか? Azure ADには、サービスプリンシパル(Azure App)にアクセスできるユーザー/グループを指定できるセクションもあります。しかし、それは二重認証のようなものでしょうか?あなたは正しい方向に私を向けることができますか?
また、私にいくつかのサンプルコードを提供していただければ幸いです。
証明書でログインするようにサービスプリンシパルを設定し、その証明書をスクリプトと共に配布し、その方法で認証します。外部の誰かがあなたのスクリプトを手に入れたら、それを使ってあなたのサブスクリプションに影響を与えることはできません。 – TheMadTechnician
証明書の使用はリスクを排除しません。 – iSi
@ TheMadTechnician私はTheMadtechnicianに同意します。証明書を使用してサービスプリンシパルを作成し、信頼するユーザーに証明書を渡します。サブスクリプションにログインするにはサービスプリンシパル+証明書を使用します'$ Certs = Get-ChildItem cert:\ CurrentUser \ My \ | Where-Object {$ _。Subject -match $ CertificateName}; Add-AzureRmAccount -ServicePrincipal -CertificateThumbprint $ Cert.Thumbprint -ApplicationId $ ServicePrincipalApplicationId -TenantId $ TenantId' –