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-AutomationPSCredentialName パラメーターに変数を使用することは避けてください。 この変数を使用すると、デザイン時に、Runbook または DSC 構成と資格情報資産との間の依存関係の検出が複雑になる可能性があります。

資格情報にアクセスする Python 関数

次の表の関数を使用して、Python 2 および 3 の Runbook の資格情報にアクセスします。 Python 3 Runbook は現在プレビュー段階です。

機能 説明
automationassets.get_automation_credential 資格情報資産に関する情報を取得します。

Note

資産関数にアクセスするには、お使いの Python Runbook の上部にある automationassets モジュールをインポートする必要があります。

新しい資格情報資産を作成する

Azure portal または Windows PowerShell を使用して、新しい資格情報資産を作成できます。

Azure portal での新しい資格情報資産の作成

  1. [Automation アカウント] から、左側のペインで、 [共有リソース][資格情報] を選択します。

  2. [資格情報] ページで、 [資格情報の追加] を選択します。

  3. [新しい資格情報] ウィンドウで、命名規則に従って、適切な資格情報名を入力します。

  4. [ユーザー名] フィールドにアクセス ID を入力します。

  5. 両方のパスワード フィールドに、シークレット アクセス キーを入力します。

    Create new credential

  6. [多要素認証] チェックボックスがオンになっている場合は、オフにします。

  7. [作成] をクリックして、新しい資格情報資産を保存します。

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 に追加できます。

Add credential cmdlet to canvas

次の図は、グラフィカルな Runbook で資格情報を使用する例を示したものです。 この例では、「Azure Automation で Azure AD を使用して Azure に対して認証する」で説明されているように、資格情報によって、Azure リソースに対する認証が Runbook に提供されています。 最初のアクティビティは、Azure サブスクリプションへのアクセス権を持つ資格情報を取得します。 その後、アカウント接続アクティビティは、この資格情報を使用して、その後にあるすべてのアクティビティに認証を提供します。 ここでは、Get-AutomationPSCredential が単一オブジェクトを想定しているため、パイプライン リンクが使用されています。

Credential workflow with pipeline link example

DSC 構成で資格情報を使用する

Azure Automation の DSC 構成では、Get-AutomationPSCredential を使用して資格情報資産を操作できますが、パラメーターを使用して資格情報資産を渡すこともできます。 詳細については、「 Azure Automation DSC での構成のコンパイル」を参照してください。

次のステップ