AD DS のストレージ アカウント ID のパスワードを更新する
パスワードの有効期限が適用される組織単位またはドメイン内のストレージ アカウントを表す Active Directory Domain Services (AD DS) ID/アカウントを登録した場合は、パスワードの有効期間が切れる前にパスワードを変更する必要があります。 組織では、パスワードの有効期限が切れると、アカウントを削除する自動クリーンアップ スクリプトが実行される場合があります。 このため、有効期限が切れる前にパスワードを変更しないと、アカウントが削除され、Azure ファイル共有へのアクセスが失われる可能性があります。
意図しないパスワードのローテーションを防ぐために、ドメインでの Azure Storage アカウントのオンボード時に、その Azure Storage アカウントを AD DS の異なる組織単位に配置してください。 この組織単位でグループ ポリシーの継承を無効にして、既定のドメイン ポリシーや特定のパスワード ポリシーが適用されないようにします。
注意
AD DS のストレージ アカウント ID には、サービス アカウントまたはコンピューター アカウントのいずれかを指定できます。 サービス アカウントのパスワードは、Active Directory (AD) で期限切れになることがあります。ただし、コンピューター アカウントのパスワードの変更は、AD ではなくクライアント マシンによって行われるため、AD では期限切れになりません。
パスワードのローテーションをトリガーするには、2 つのオプションがあります。 AzFilesHybrid
モジュールまたは Active Directory PowerShell を使用できます。 両方の方法ではなく、いずれかの方法を使用してください。
適用対象
ファイル共有の種類 | SMB | NFS |
---|---|---|
Standard ファイル共有 (GPv2)、LRS/ZRS | ||
Standard ファイル共有 (GPv2)、GRS/GZRS | ||
Premium ファイル共有 (FileStorage)、LRS/ZRS |
オプション 1: AzFilesHybrid モジュールを使用する
AzFilesHybrid モジュールから Update-AzStorageAccountADObjectPassword
コマンドレットを実行できます。 ストレージ アカウントに対する所有者アクセス許可と AD DS アクセス許可を持つハイブリッド ID を利用して、オンプレミスの AD DS 参加環境でこのコマンドを実行して、ストレージ アカウントを表す ID のパスワードを変更する必要があります。 コマンドでは、ストレージ アカウント キーのローテーションとほぼ同じアクションが実行されます。 特に、ストレージ アカウントの 2 番目の Kerberos キーが取得され、それを使用して AD DS の登録済みアカウントのパスワードが更新されます。 次に、ストレージ アカウントのターゲット Kerberos キーが再生成され、AD DS の登録済みアカウントのパスワードが更新されます。
# Update the password of the AD DS account registered for the storage account
# You may use either kerb1 or kerb2
Update-AzStorageAccountADObjectPassword `
-RotateToKerbKey kerb2 `
-ResourceGroupName "<your-resource-group-name-here>" `
-StorageAccountName "<your-storage-account-name-here>"
この操作により、AD オブジェクトのパスワードが kerb1 から kerb2 に変更されます。 これは 2 段階のプロセスになるように意図されています。つまり、kerb1 から kerb2 にローテーションし (kerb2 は、設定される前にストレージ アカウントで再生成されます)、数時間待機し、kerb1 に再びローテーションします (このコマンドレットでも同様に kerb1 が再生成されます)。
オプション 2: Active Directory PowerShell を使用する
AzFilesHybrid
モジュールをダウンロードしたくない場合、Active Directory PowerShell を使用できます。
重要
このセクション内の Windows Server Active Directory PowerShell コマンドレットは、昇格された特権を使用して Windows PowerShell 5.1 で実行する必要があります。 このシナリオでは、PowerShell 7.x と Azure Cloud Shell は機能しません。
次のスクリプト内の <domain-object-identity>
を実際の値に置き換えてから、そのスクリプトを実行してドメイン オブジェクトのパスワードを更新します。
$KeyName = "kerb1" # Could be either the first or second kerberos key, this script assumes we're refreshing the first
$KerbKeys = New-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -KeyName $KeyName
$KerbKey = $KerbKeys.keys | Where-Object {$_.KeyName -eq $KeyName} | Select-Object -ExpandProperty Value
$NewPassword = ConvertTo-SecureString -String $KerbKey -AsPlainText -Force
Set-ADAccountPassword -Identity <domain-object-identity> -Reset -NewPassword $NewPassword