Azure Automation で資格情報を管理する
Automation 資格情報資産は、ユーザー名とパスワードなどのセキュリティ資格情報を含むオブジェクトを保持しています。 Runbook と DSC 構成では、認証のための PSCredential オブジェクトを受け入れるコマンドレットを使用します。 または、PSCredential
オブジェクトのユーザー名とパスワードを抽出して、認証を必要とする一部のアプリケーションまたはサービスに提供することもできます。
Note
Azure Automation でセキュリティ保護される資産としては、資格情報、証明書、接続、暗号化された変数などがあります。 これらの資産は、各 Automation アカウント用に生成された一意のキーを使って暗号化され、Azure Automation に保存されます。 Azure Automation では、キーはシステムによって管理される Key Vault に格納されます。 セキュリティで保護された資産を保存する前に、Automation によって Key Vault からキーが読み込まれ、それを使用して資産が暗号化されます。
注意
個人データの表示または削除については、「GDPR のための Azure データ サブジェクト要求」を参照してください。 GDPR の詳細については、Microsoft Trust Center の GDPR に関するセクションおよび Service Trust Portal の GDPR に関するセクションをご覧ください。
資格情報へのアクセスに使用する PowerShell コマンドレット
PowerShell を使用して Automation 資格情報を作成および管理するためのコマンドレットを次の表に示します。 これらは、Az モジュールの一部として出荷されます。
コマンドレット | 説明 |
---|---|
Get-AzAutomationCredential | 資格情報に関するメタデータを格納している CredentialInfo オブジェクトを取得します。 このコマンドレットは PSCredential オブジェクト自体を取得しません。 |
New-AzAutomationCredential | 新しい Automation 資格情報を作成します。 |
Remove-AzAutomationCredential | Automation 資格情報を削除します。 |
Set-AzAutomationCredential | 既存の Automation 資格情報のプロパティを設定します。 |
資格情報へのアクセスに使用するその他のコマンドレット
次の表のコマンドレットは、Runbook および DSC 構成で資格情報にアクセスするために使用されます。
コマンドレット | 説明 |
---|---|
Get-AutomationPSCredential |
Runbook または DSC 構成で使用する PSCredential オブジェクトを取得します。 Get-AzAutomationCredential コマンドレットは資格情報を取得するだけなので、ほとんどの場合、代わりにこの内部コマンドレットを使用する必要があります。 通常、この情報は別のコマンドレットに渡す場合には役に立ちません。 |
Get-Credential | ユーザー名とパスワードの入力を求めるプロンプトが表示された資格情報を取得します。 このコマンドレットは既定の Microsoft.PowerShell.Security モジュールの一部です。 「既定のモジュール」を参照してください。 |
New-AzureAutomationCredential | 資格情報資産を作成します。 このコマンドレットは、既定の Azure モジュールの一部です。 「既定のモジュール」を参照してください。 |
コード内の PSCredential
オブジェクトを取得するには、Orchestrator.AssetManagement.Cmdlets
モジュールをインポートする必要があります。 詳細については、「Azure Automation でモジュールを管理する」をご覧ください。
Import-Module Orchestrator.AssetManagement.Cmdlets -ErrorAction SilentlyContinue
Note
Get-AutomationPSCredential
の Name
パラメーターに変数を使用することは避けてください。 この変数を使用すると、デザイン時に、Runbook または DSC 構成と資格情報資産との間の依存関係の検出が複雑になる可能性があります。
資格情報にアクセスする Python 関数
次の表の関数を使用して、Python 2 および 3 の Runbook の資格情報にアクセスします。 Python 3 Runbook は現在プレビュー段階です。
機能 | 説明 |
---|---|
automationassets.get_automation_credential |
資格情報資産に関する情報を取得します。 |
Note
資産関数にアクセスするには、お使いの Python Runbook の上部にある automationassets
モジュールをインポートする必要があります。
新しい資格情報資産を作成する
Azure portal または Windows PowerShell を使用して、新しい資格情報資産を作成できます。
Azure portal での新しい資格情報資産の作成
[Automation アカウント] から、左側のペインで、 [共有リソース] の [資格情報] を選択します。
[資格情報] ページで、 [資格情報の追加] を選択します。
[新しい資格情報] ウィンドウで、命名規則に従って、適切な資格情報名を入力します。
[ユーザー名] フィールドにアクセス ID を入力します。
両方のパスワード フィールドに、シークレット アクセス キーを入力します。
[多要素認証] チェックボックスがオンになっている場合は、オフにします。
[作成] をクリックして、新しい資格情報資産を保存します。
Note
Azure Automation では、多要素認証を使用するユーザー アカウントをサポートしていません。
Windows PowerShell で新しい資格情報資産を作成する
次の例では、新しい Automation 資格情報資産を作成する方法について説明します。 最初に名前とパスワードで PSCredential
オブジェクトを作成し、それを使用して資格情報資産を作成します。 または、Get-Credential
コマンドレットを使用して、ユーザーに名前とパスワードの入力を求めることもできます。
$user = "MyDomain\MyUser"
$pw = ConvertTo-SecureString "PassWord!" -AsPlainText -Force
$cred = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $user, $pw
New-AzureAutomationCredential -AutomationAccountName "MyAutomationAccount" -Name "MyCredential" -Value $cred
資格情報資産を取得する
Runbook または DSC 構成では、内部の Get-AutomationPSCredential
コマンドレットを使用して、資格情報資産を取得します。 このコマンドレットは、資格情報を必要とするコマンドレットで使用できる PSCredential
オブジェクトを取得します。 また、資格情報オブジェクトのプロパティを取得して個別に使用することもできます。 このオブジェクトには、ユーザー名とセキュリティで保護されたパスワードのプロパティがあります。
Note
Get-AzAutomationCredential
コマンドレットでは、認証に使用できる PSCredential
オブジェクトを取得しません。 資格情報に関する情報が提供されるだけです。 Runbook で資格情報を使用する必要がある場合は、Get-AutomationPSCredential
を使用して PSCredential
オブジェクトとして取得する必要があります。
または、GetNetworkCredential メソッドを使用して、安全ではないバージョンのパスワードを表す NetworkCredential オブジェクトを取得することもできます。
テキスト形式の Runbook の例
次の例では、Runbook で PowerShell 資格情報を使用する方法を示しています。 資格情報を取得して、そのユーザー名とパスワードを変数に割り当てます。
$myCredential = Get-AutomationPSCredential -Name 'MyCredential'
$userName = $myCredential.UserName
$securePassword = $myCredential.Password
$password = $myCredential.GetNetworkCredential().Password
まずマネージド ID で接続した後、資格情報を使用して Connect-AzAccount で Azure を認証することもできます。 この例では、システム割り当てマネージド ID を使用しています。
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process
# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext
# Get credential
$myCred = Get-AutomationPSCredential -Name "MyCredential"
$userName = $myCred.UserName
$securePassword = $myCred.Password
$password = $myCred.GetNetworkCredential().Password
$myPsCred = New-Object System.Management.Automation.PSCredential ($userName,$securePassword)
# Connect to Azure with credential
$AzureContext = (Connect-AzAccount -Credential $myPsCred -TenantId $AzureContext.Subscription.TenantId).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
-TenantId $AzureContext.Subscription.TenantId `
-DefaultProfile $AzureContext
グラフィカルな Runbook の例
グラフィカル エディターの [ライブラリ] ペインで資格情報を右クリックし、 [キャンバスに追加] を選択することで、内部 Get-AutomationPSCredential
コマンドレットのアクティビティをグラフィカルな Runbook に追加できます。
次の図は、グラフィカルな Runbook で資格情報を使用する例を示したものです。 この例では、「Azure Automation で Azure AD を使用して Azure に対して認証する」で説明されているように、資格情報によって、Azure リソースに対する認証が Runbook に提供されています。 最初のアクティビティは、Azure サブスクリプションへのアクセス権を持つ資格情報を取得します。 その後、アカウント接続アクティビティは、この資格情報を使用して、その後にあるすべてのアクティビティに認証を提供します。 ここでは、Get-AutomationPSCredential
が単一オブジェクトを想定しているため、パイプライン リンクが使用されています。
DSC 構成で資格情報を使用する
Azure Automation の DSC 構成では、Get-AutomationPSCredential
を使用して資格情報資産を操作できますが、パラメーターを使用して資格情報資産を渡すこともできます。 詳細については、「 Azure Automation DSC での構成のコンパイル」を参照してください。
次のステップ
- 証明書へのアクセスに使用するコマンドレットの詳細については、「Azure Automation でモジュールを管理する」を参照してください。
- Runbook の一般的な情報については、「Azure Automation での Runbook の実行」を参照してください。
- DSC 構成の詳細については、「Azure Automation State Configuration の概要」を参照してください。