共用方式為


Set-AzStorageAccount

修改記憶體帳戶。

語法

Set-AzStorageAccount
   [-ResourceGroupName] <String>
   [-Name] <String>
   [-Force]
   [-SkuName <String>]
   [-AccessTier <String>]
   [-CustomDomainName <String>]
   [-UseSubDomain <Boolean>]
   [-Tag <Hashtable>]
   [-EnableHttpsTrafficOnly <Boolean>]
   [-StorageEncryption]
   [-AssignIdentity]
   [-UserAssignedIdentityId <String>]
   [-KeyVaultUserAssignedIdentityId <String>]
   [-KeyVaultFederatedClientId <String>]
   [-IdentityType <String>]
   [-NetworkRuleSet <PSNetworkRuleSet>]
   [-UpgradeToStorageV2]
   [-EnableAzureActiveDirectoryDomainServicesForFile <Boolean>]
   [-EnableLargeFileShare]
   [-PublishMicrosoftEndpoint <Boolean>]
   [-PublishInternetEndpoint <Boolean>]
   [-AllowBlobPublicAccess <Boolean>]
   [-MinimumTlsVersion <String>]
   [-AllowSharedKeyAccess <Boolean>]
   [-SasExpirationPeriod <TimeSpan>]
   [-KeyExpirationPeriodInDay <Int32>]
   [-AllowCrossTenantReplication <Boolean>]
   [-DefaultSharePermission <String>]
   [-PublicNetworkAccess <String>]
   [-ImmutabilityPeriod <Int32>]
   [-ImmutabilityPolicyState <String>]
   [-EnableSftp <Boolean>]
   [-EnableLocalUser <Boolean>]
   [-AllowedCopyScope <String>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-RoutingChoice <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzStorageAccount
   [-ResourceGroupName] <String>
   [-Name] <String>
   [-Force]
   [-SkuName <String>]
   [-AccessTier <String>]
   [-CustomDomainName <String>]
   [-UseSubDomain <Boolean>]
   [-Tag <Hashtable>]
   [-EnableHttpsTrafficOnly <Boolean>]
   [-KeyvaultEncryption]
   -KeyName <String>
   [-KeyVersion <String>]
   -KeyVaultUri <String>
   [-AssignIdentity]
   [-UserAssignedIdentityId <String>]
   [-KeyVaultUserAssignedIdentityId <String>]
   [-KeyVaultFederatedClientId <String>]
   [-IdentityType <String>]
   [-NetworkRuleSet <PSNetworkRuleSet>]
   [-UpgradeToStorageV2]
   [-EnableAzureActiveDirectoryDomainServicesForFile <Boolean>]
   [-EnableLargeFileShare]
   [-PublishMicrosoftEndpoint <Boolean>]
   [-PublishInternetEndpoint <Boolean>]
   [-AllowBlobPublicAccess <Boolean>]
   [-MinimumTlsVersion <String>]
   [-AllowSharedKeyAccess <Boolean>]
   [-SasExpirationPeriod <TimeSpan>]
   [-KeyExpirationPeriodInDay <Int32>]
   [-AllowCrossTenantReplication <Boolean>]
   [-DefaultSharePermission <String>]
   [-PublicNetworkAccess <String>]
   [-ImmutabilityPeriod <Int32>]
   [-ImmutabilityPolicyState <String>]
   [-EnableSftp <Boolean>]
   [-EnableLocalUser <Boolean>]
   [-AllowedCopyScope <String>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-RoutingChoice <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzStorageAccount
   [-ResourceGroupName] <String>
   [-Name] <String>
   [-Force]
   [-SkuName <String>]
   [-AccessTier <String>]
   [-CustomDomainName <String>]
   [-UseSubDomain <Boolean>]
   [-Tag <Hashtable>]
   [-EnableHttpsTrafficOnly <Boolean>]
   [-AssignIdentity]
   [-UserAssignedIdentityId <String>]
   [-KeyVaultUserAssignedIdentityId <String>]
   [-KeyVaultFederatedClientId <String>]
   [-IdentityType <String>]
   [-NetworkRuleSet <PSNetworkRuleSet>]
   [-UpgradeToStorageV2]
   [-EnableLargeFileShare]
   [-PublishMicrosoftEndpoint <Boolean>]
   [-PublishInternetEndpoint <Boolean>]
   [-EnableAzureActiveDirectoryKerberosForFile <Boolean>]
   [-ActiveDirectoryDomainName <String>]
   [-ActiveDirectoryDomainGuid <String>]
   [-AllowBlobPublicAccess <Boolean>]
   [-MinimumTlsVersion <String>]
   [-AllowSharedKeyAccess <Boolean>]
   [-SasExpirationPeriod <TimeSpan>]
   [-KeyExpirationPeriodInDay <Int32>]
   [-AllowCrossTenantReplication <Boolean>]
   [-DefaultSharePermission <String>]
   [-PublicNetworkAccess <String>]
   [-ImmutabilityPeriod <Int32>]
   [-ImmutabilityPolicyState <String>]
   [-EnableSftp <Boolean>]
   [-EnableLocalUser <Boolean>]
   [-AllowedCopyScope <String>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-RoutingChoice <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzStorageAccount
   [-ResourceGroupName] <String>
   [-Name] <String>
   [-Force]
   [-SkuName <String>]
   [-AccessTier <String>]
   [-CustomDomainName <String>]
   [-UseSubDomain <Boolean>]
   [-Tag <Hashtable>]
   [-EnableHttpsTrafficOnly <Boolean>]
   [-AssignIdentity]
   [-UserAssignedIdentityId <String>]
   [-KeyVaultUserAssignedIdentityId <String>]
   [-KeyVaultFederatedClientId <String>]
   [-IdentityType <String>]
   [-NetworkRuleSet <PSNetworkRuleSet>]
   [-UpgradeToStorageV2]
   [-EnableLargeFileShare]
   [-PublishMicrosoftEndpoint <Boolean>]
   [-PublishInternetEndpoint <Boolean>]
   -EnableActiveDirectoryDomainServicesForFile <Boolean>
   [-ActiveDirectoryDomainName <String>]
   [-ActiveDirectoryNetBiosDomainName <String>]
   [-ActiveDirectoryForestName <String>]
   [-ActiveDirectoryDomainGuid <String>]
   [-ActiveDirectoryDomainSid <String>]
   [-ActiveDirectoryAzureStorageSid <String>]
   [-ActiveDirectorySamAccountName <String>]
   [-ActiveDirectoryAccountType <String>]
   [-AllowBlobPublicAccess <Boolean>]
   [-MinimumTlsVersion <String>]
   [-AllowSharedKeyAccess <Boolean>]
   [-SasExpirationPeriod <TimeSpan>]
   [-KeyExpirationPeriodInDay <Int32>]
   [-AllowCrossTenantReplication <Boolean>]
   [-DefaultSharePermission <String>]
   [-PublicNetworkAccess <String>]
   [-ImmutabilityPeriod <Int32>]
   [-ImmutabilityPolicyState <String>]
   [-EnableSftp <Boolean>]
   [-EnableLocalUser <Boolean>]
   [-AllowedCopyScope <String>]
   [-AsJob]
   [-DefaultProfile <IAzureContextContainer>]
   [-RoutingChoice <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Set-AzStorageAccount Cmdlet 會修改 Azure 儲存體 帳戶。 您可以使用此 Cmdlet 來修改帳戶類型、更新客戶網域,或在儲存體帳戶上設定標籤。

範例

範例 1:設定記憶體帳戶類型

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -SkuName "Standard_RAGRS"

此命令會將記憶體帳戶類型設定為 Standard_RAGRS。

範例 2:設定記憶體帳戶的自訂網域

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -CustomDomainName "www.contoso.com" -UseSubDomain $true

此命令會設定記憶體帳戶的自定義網域。

範例 3:設定存取層值

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -AccessTier Cool

命令會將存取層值設定為非經常性存取層。

範例 4:設定自定義網域和標籤

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -CustomDomainName "www.domainname.com" -UseSubDomain $true -Tag @{tag0="value0";tag1="value1";tag2="value2"}

命令會設定記憶體帳戶的自定義網域和標籤。

範例 5:將加密金鑰來源設定為 Keyvault

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -AssignIdentity
$account = Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount"

$keyVault = New-AzKeyVault -VaultName "MyKeyVault" -ResourceGroupName "MyResourceGroup" -Location "EastUS2"
$key = Add-AzKeyVaultKey -VaultName "MyKeyVault" -Name "MyKey" -Destination 'Software'
Set-AzKeyVaultAccessPolicy -VaultName "MyKeyVault" -ObjectId $account.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get

# In case to enable key auto rotation, don't set KeyVersion
Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyvaultEncryption -KeyName $key.Name -KeyVersion $key.Version -KeyVaultUri $keyVault.VaultUri

# In case to enable key auto rotation after set keyvault proeprites with KeyVersion, can update account by set KeyVersion to empty
Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -KeyvaultEncryption -KeyName $key.Name -KeyVersion "" -KeyVaultUri $keyVault.VaultUri

此命令會使用新建立的 Keyvault 來設定 Encryption KeySource。 如果想要啟用金鑰自動輪替,請勿在第一次設定 Keyvault 屬性時設定 Keyvault 屬性,或將 keyvault 屬性再次設定為空白來清除密鑰保存庫屬性。

範例 6:將加密密鑰來源設定為 “Microsoft.Storage”

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -StorageEncryption

此命令會將 Encryption KeySource 設定為 “Microsoft.Storage”

範例 7:使用 JSON 設定記憶體帳戶的 NetworkRuleSet 屬性

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -NetworkRuleSet (@{bypass="Logging,Metrics";
    ipRules=(@{IPAddressOrRange="20.11.0.0/16";Action="allow"},
            @{IPAddressOrRange="10.0.0.0/7";Action="allow"});
    virtualNetworkRules=(@{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1";Action="allow"},
                        @{VirtualNetworkResourceId="/subscriptions/s1/resourceGroups/g1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2";Action="allow"});
    defaultAction="allow"})

此命令會使用 JSON 設定記憶體帳戶的 NetworkRuleSet 屬性

範例 8:從記憶體帳戶取得 NetworkRuleSet 屬性,並將其設定為另一個記憶體帳戶

$networkRuleSet = (Get-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount").NetworkRuleSet 
Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount2" -NetworkRuleSet $networkRuleSet

第一個命令會從記憶體帳戶取得 NetworkRuleSet 屬性,而第二個命令會將它設定為另一個記憶體帳戶

範例 9:將類型為 “Storage” 或 “BlobStorage” 的記憶體帳戶升級為 “StorageV2” 類型記憶體帳戶

Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -UpgradeToStorageV2

命令會將類型為 「Storage」 或 「BlobStorage」 的記憶體帳戶升級為 「StorageV2」 類型記憶體帳戶。

範例 10:啟用 Azure 檔案儲存體 Microsoft Entra Domain Services 驗證並設定 DefaultSharePermission 來更新記憶體帳戶。

$account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -EnableAzureActiveDirectoryDomainServicesForFile $true -DefaultSharePermission StorageFileDataSmbShareContributor

$account.AzureFilesIdentityBasedAuth

DirectoryServiceOptions ActiveDirectoryProperties                                                      DefaultSharePermission      
----------------------- -------------------------                                                      ----------------------      
AADDS                   Microsoft.Azure.Commands.Management.Storage.Models.PSActiveDirectoryProperties StorageFileDataSmbShareContributor

命令會啟用 Azure 檔案儲存體 Microsoft Entra Domain Services 驗證來更新記憶體帳戶。

範例 11:啟用檔案 Active Directory 網域 服務驗證來更新記憶體帳戶,然後顯示 [檔案身分識別型驗證] 設定

$account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -EnableActiveDirectoryDomainServicesForFile $true `
        -ActiveDirectoryDomainName "mydomain.com" `
        -ActiveDirectoryNetBiosDomainName "mydomain.com" `
        -ActiveDirectoryForestName "mydomain.com" `
        -ActiveDirectoryDomainGuid "12345678-1234-1234-1234-123456789012" `
        -ActiveDirectoryDomainSid "S-1-5-21-1234567890-1234567890-1234567890" `
        -ActiveDirectoryAzureStorageSid "S-1-5-21-1234567890-1234567890-1234567890-1234" `
        -ActiveDirectorySamAccountName "samaccountname" `
        -ActiveDirectoryAccountType Computer 
		
$account.AzureFilesIdentityBasedAuth.DirectoryServiceOptions
AD

$account.AzureFilesIdentityBasedAuth.ActiveDirectoryProperties

DomainName        : mydomain.com
NetBiosDomainName : mydomain.com
ForestName        : mydomain.com
DomainGuid        : 12345678-1234-1234-1234-123456789012
DomainSid         : S-1-5-21-1234567890-1234567890-1234567890
AzureStorageSid   : S-1-5-21-1234567890-1234567890-1234567890-1234
SamAccountName    : samaccountname
AccountType       : Computer

命令會啟用 Azure 檔案儲存體 Active Directory 網域 服務驗證來更新記憶體帳戶,然後顯示 [檔案身分識別型驗證] 設定

範例 12:設定 MinimumTlsVersion、AllowBlobPublicAccess 和 AllowSharedKeyAccess

$account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -MinimumTlsVersion TLS1_1 -AllowBlobPublicAccess $false -AllowSharedKeyAccess $true

$account.MinimumTlsVersion
TLS1_1

$account.AllowBlobPublicAccess
False

$a.AllowSharedKeyAccess
True

命令會設定 MinimumTlsVersion、AllowBlobPublicAccess 和 AllowSharedKeyAccess,然後顯示帳戶的 3 個屬性

範例 13:使用 RoutingPreference 設定更新記憶體帳戶

$account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -PublishMicrosoftEndpoint $false -PublishInternetEndpoint $true -RoutingChoice InternetRouting

$account.RoutingPreference

RoutingChoice   PublishMicrosoftEndpoints PublishInternetEndpoints
-------------   ------------------------- ------------------------
InternetRouting                     False                     True

$account.PrimaryEndpoints

Blob               : https://mystorageaccount.blob.core.windows.net/
Queue              : https://mystorageaccount.queue.core.windows.net/
Table              : https://mystorageaccount.table.core.windows.net/
File               : https://mystorageaccount.file.core.windows.net/
Web                : https://mystorageaccount.z2.web.core.windows.net/
Dfs                : https://mystorageaccount.dfs.core.windows.net/
MicrosoftEndpoints : 
InternetEndpoints  : {"Blob":"https://mystorageaccount-internetrouting.blob.core.windows.net/","File":"https://mystorageaccount-internetrouting.file.core.windows.net/","Web":"https://mystorageaccount-internetrouting.z2.web.core.windows.net/","Dfs":"https://w
                     eirp3-internetrouting.dfs.core.windows.net/"}

此命令會使用 RoutingPreference 設定來更新記憶體帳戶:PublishMicrosoftEndpoint 為 false、PublishInternetEndpoint 為 true,以及 RoutingChoice 作為 MicrosoftRouting。

範例 14:使用 KeyExpirationPeriod 和 SasExpirationPeriod 更新記憶體帳戶

$account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -KeyExpirationPeriodInDay 5 -SasExpirationPeriod "1.12:05:06" -EnableHttpsTrafficOnly $true

$account.KeyPolicy.KeyExpirationPeriodInDays
5

$account.SasPolicy.SasExpirationPeriod
1.12:05:06

此命令會使用 KeyExpirationPeriod 和 SasExpirationPeriod 來更新記憶體帳戶,然後顯示更新的帳戶相關屬性。

範例 15:將記憶體帳戶更新為 Keyvault 加密,並使用使用者指派的身分識別存取 Keyvault

# Create KeyVault (no need if using exist keyvault)
$keyVault = New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location eastus2euap -EnablePurgeProtection
$key = Add-AzKeyVaultKey -VaultName $keyvaultName -Name $keyname -Destination 'Software'

# create user assigned identity and grant access to keyvault (no need if using exist user assigned identity)
$userId = New-AzUserAssignedIdentity -ResourceGroupName $resourceGroupName -Name $userIdName
Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $userId.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation
$useridentityId= $userId.Id

# Update Storage account with Keyvault encryption and access Keyvault with user assigned identity, then show properties
$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName `
                -IdentityType UserAssigned  -UserAssignedIdentityId $useridentityId  `
                -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId

$account.Encryption.EncryptionIdentity.EncryptionUserAssignedIdentity
/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid

$account.Encryption.KeyVaultProperties

KeyName                       : wrappingKey
KeyVersion                    : 
KeyVaultUri                   : https://mykeyvault.vault.azure.net:443
CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f
LastKeyRotationTimestamp      : 4/12/2021 8:17:57 AM

此命令會先建立keyvault和使用者指派的身分識別,然後使用keyvault加密來更新記憶體帳戶、具有使用者指派身分識別的記憶體存取密鑰保存庫。

範例 16:更新 Keyvault 加密的記憶體帳戶,從使用使用者指派的身分識別存取 Keyvault,以存取具有系統指派身分識別的 Keyvault

# Assign System identity to the account, and give the system assigned identity acces to the keyvault
$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName  -IdentityType SystemAssignedUserAssigned
Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ObjectId $account.Identity.PrincipalId -PermissionsToKeys get,wrapkey,unwrapkey -BypassObjectIdValidation

# Update account from access Keyvault with user assigned identity to access Keyvault with system assigned identity
$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -KeyName $keyname -KeyVaultUri $keyvaultUri -KeyVaultUserAssignedIdentityId ""

# EncryptionUserAssignedIdentity is empty, so the account access keyvault with system assigned identity
$account.Encryption.EncryptionIdentity

EncryptionUserAssignedIdentity                                                                                                                 
------------------------------ 

$account.Encryption.KeyVaultProperties

KeyName                       : wrappingKey
KeyVersion                    : 
KeyVaultUri                   : https://mykeyvault.vault.azure.net:443
CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f
LastKeyRotationTimestamp      : 4/12/2021 8:17:57 AM

此命令會先將系統身分識別指派給帳戶,並授與系統指派的身分識別存取權給keyvault;然後更新記憶體帳戶,以使用系統指派的身分識別來存取 Keyvault。

範例 17:更新 Keyvault 和使用者指派的身分識別以存取 keyvault

# Update to another user assigned identity
$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -IdentityType SystemAssignedUserAssigned -UserAssignedIdentityId $useridentity2 -KeyVaultUserAssignedIdentityId $useridentity2

# Update to encrypt with another keyvault
$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -KeyVaultUri $keyvaultUri2 -KeyName $keyname2 -KeyVersion $keyversion2

此命令會先更新使用者指派的身分識別以存取keyvault,然後更新keyvault以進行加密。 若要同時更新 Keyvault 和使用者指派的身分識別,我們需要使用上述 2 個步驟進行更新。

範例 18:使用 AllowCrossTenantReplication 更新記憶體帳戶

$account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -AllowCrossTenantReplication $false -EnableHttpsTrafficOnly $true

$account.AllowCrossTenantReplication

False

此命令會將 AllowCrossTenantReplication 設定為 false 來更新記憶體帳戶,然後顯示更新的帳戶相關屬性。

範例 18:啟用 PublicNetworkAccess 來更新記憶體帳戶

$account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -PublicNetworkAccess Enabled

$account.PublicNetworkAccess

Enabled

此命令會藉由將 PublicNetworkAccess 設定為已啟用來更新記憶體帳戶。

範例 19:更新帳戶層級不變性原則

$account = Set-AzStorageAccount -ResourceGroupName "MyResourceGroup" -Name "mystorageaccount" -ImmutabilityPeriod 2 -ImmutabilityPolicyState Unlocked

$account.ImmutableStorageWithVersioning.Enabled
True

$account.ImmutableStorageWithVersioning.ImmutabilityPolicy

ImmutabilityPeriodSinceCreationInDays State    
------------------------------------- -----    
                                    2 Unlocked

命令會更新現有記憶體帳戶上的帳戶層級不變性原則屬性,並顯示結果。 記憶體帳戶必須使用版本設定啟用帳戶層級不變性來建立。 帳戶層級不變性原則將會繼承並套用至物件層級沒有明確不變性原則的物件。

範例 20:啟用 Sftp 和 localuser 來更新記憶體帳戶

$account = Set-AzStorageAccount -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -EnableSftp $true -EnableLocalUser $true 

$account.EnableSftp
True

$account.EnableLocalUser
True

此命令會啟用 Sftp 和 localuser 來更新記憶體帳戶。 若要順利執行命令,記憶體帳戶應該已經啟用階層式Namespace。

範例 21:使用另一個租使用者的 Keyvault 更新記憶體帳戶(使用 FederatedClientId 存取 Keyvault)

# create Storage account with Keyvault encryption (access Keyvault with FederatedClientId), then show properties
$account = Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName  `
                -KeyVaultUri $keyVault.VaultUri -KeyName $keyname -KeyVaultUserAssignedIdentityId $useridentityId -KeyVaultFederatedClientId $federatedClientId

$account.Encryption.EncryptionIdentity

EncryptionUserAssignedIdentity                                                                                                      EncryptionFederatedIdentityClientId                                                                                                                 
------------------------------                                                                                                      ----------------------------------- 
/subscriptions/{subscription-id}/resourceGroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myuserid ********-****-****-****-************

$account.Encryption.KeyVaultProperties

KeyName                       : wrappingKey
KeyVersion                    : 
KeyVaultUri                   : https://mykeyvault.vault.azure.net:443
CurrentVersionedKeyIdentifier : https://mykeyvault.vault.azure.net/keys/wrappingKey/8e74036e0d534e58b3bd84b319e31d8f
LastKeyRotationTimestamp      : 3/3/2022 2:07:34 AM

此命令會從另一個租使用者更新具有 Keyvault 的記憶體帳戶(使用 FederatedClientId 存取 Keyvault)。

參數

-AccessTier

指定此 Cmdlet 修改之記憶體帳戶的存取層。 此參數可接受的值為:經常性存取和非經常性存取。 如果您變更存取層,可能會導致額外費用。 如需詳細資訊,請參閱 Azure Blob 儲存體:經常性存取和非經常性存取儲存層。 如果記憶體帳戶的 Kind 為 StorageV2 或 BlobStorage,您可以指定 AccessTier 參數。 如果記憶體帳戶具有 Kind as Storage,請勿指定 AccessTier 參數。

類型:String
接受的值:Hot, Cool
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectoryAccountType

指定 Azure 儲存體的 Active Directory 帳戶類型。 可能的值包括:『User』、『Computer』。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectoryAzureStorageSid

指定 Azure 儲存體 的安全性識別碼 (SID)。 當 -EnableActiveDirectoryDomainServicesForFile 設定為 true 時,必須設定此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectoryDomainGuid

指定網域 GUID。 當 -EnableActiveDirectoryDomainServicesForFile 設定為 true 時,必須設定此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectoryDomainName

指定AD DNS 伺服器授權的主要網域。 當 -EnableActiveDirectoryDomainServicesForFile 設定為 true 時,必須設定此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectoryDomainSid

指定安全性識別碼 (SID)。 當 -EnableActiveDirectoryDomainServicesForFile 設定為 true 時,必須設定此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectoryForestName

指定要取得的 Active Directory 樹系。 當 -EnableActiveDirectoryDomainServicesForFile 設定為 true 時,必須設定此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectoryNetBiosDomainName

指定 NetBIOS 功能變數名稱。 當 -EnableActiveDirectoryDomainServicesForFile 設定為 true 時,必須設定此參數。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ActiveDirectorySamAccountName

指定 Azure 儲存體的 Active Directory SAMAccountName。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AllowBlobPublicAccess

允許或不允許匿名存取記憶體帳戶中的所有 Blob 或容器。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AllowCrossTenantReplication

取得或設定允許或不允許跨Microsoft Entra 租用戶對象複寫。 此屬性的默認解譯為 true。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AllowedCopyScope

將限制複製至 Microsoft Entra 租使用者內的記憶體帳戶,或使用相同 VNet 的私人連結來回復制。 可能的值包括:'PrivateLink'、'AAD'

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AllowSharedKeyAccess

指出記憶體帳戶是否允許透過共用密鑰使用帳戶存取金鑰授權要求。 如果為 false,則所有要求,包括共用存取簽章,都必須使用 Microsoft Entra 標識符獲得授權。 默認值為 null,相當於 true。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AsJob

在背景執行 Cmdlet

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AssignIdentity

產生並指派此儲存體帳戶的新記憶體帳戶身分識別,以搭配 Azure KeyVault 等密鑰管理服務使用。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Confirm

執行 Cmdlet 之前先提示您確認。

類型:SwitchParameter
別名:cf
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-CustomDomainName

指定自訂網域的名稱。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DefaultProfile

用於與 Azure 通訊的認證、帳戶、租用戶和訂用帳戶。

類型:IAzureContextContainer
別名:AzContext, AzureRmContext, AzureCredential
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DefaultSharePermission

如果未指派 RBAC 角色,則使用 Kerberos 驗證的使用者預設共享許可權。

類型:String
接受的值:None, StorageFileDataSmbShareContributor, StorageFileDataSmbShareReader, StorageFileDataSmbShareElevatedContributor
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EnableActiveDirectoryDomainServicesForFile

為記憶體帳戶啟用 Azure 檔案儲存體 Active Directory 網域 服務驗證。

類型:Boolean
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-EnableAzureActiveDirectoryDomainServicesForFile

為記憶體帳戶啟用 Azure 檔案儲存體 Active Directory 網域 服務驗證。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EnableAzureActiveDirectoryKerberosForFile

為記憶體帳戶啟用 Azure 檔案儲存體 Active Directory 網域 服務 Kerberos 驗證。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EnableHttpsTrafficOnly

指出記憶體帳戶是否只啟用 HTTPS 流量。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EnableLargeFileShare

指出記憶體帳戶是否可以支援容量超過 5 TiB 的大型檔案共用。 啟用帳戶之後,就無法停用此功能。 目前僅支援 LRS 和 ZRS 複寫類型,因此無法將帳戶轉換成異地備援帳戶。 在 https://go.microsoft.com/fwlink/?linkid=2086047 中深入了解

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EnableLocalUser

啟用記憶體帳戶的本機使用者功能。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EnableSftp

啟用記憶體帳戶的安全檔案傳輸通訊協定。

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Force

強制將變更寫入記憶體帳戶。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-IdentityType

設定新的記憶體帳戶身分識別類型,idenetity 會與 Azure KeyVault 等密鑰管理服務搭配使用。

類型:String
接受的值:SystemAssigned, UserAssigned, SystemAssignedUserAssigned, None
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ImmutabilityPeriod

自建立原則后,容器中 Blob 的不變期間數天。 只有在使用 '-EnableAccountLevelImmutability' 建立帳戶時,才能變更此屬性。

類型:Int32
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ImmutabilityPolicyState

原則的模式。 可能的值包括:『Unlocked』、『Locked』、『Disabled。 停用狀態會停用原則。 解除鎖定狀態允許增加和減少不變性保留時間,也允許切換allowProtectedAppendWrites屬性。 鎖定狀態只允許增加不變性保留時間。 原則只能以 [已停用] 或 [解除鎖定] 狀態建立,而且可以在兩個狀態之間切換。 只有處於解除鎖定狀態的原則可以轉換為無法還原的鎖定狀態。 只有在使用 '-EnableAccountLevelImmutability' 建立帳戶時,才能變更此屬性。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-KeyExpirationPeriodInDay

此帳戶的金鑰到期期間,對天數來說是正確的。

類型:Int32
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-KeyName

如果使用 -KeyvaultEncryption 來啟用 金鑰保存庫 加密,請使用此選項指定 Keyname 屬性。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-KeyvaultEncryption

指出在使用記憶體服務加密時,是否要使用 Microsoft KeyVault 做為加密密鑰。 如果已設定 KeyName、KeyVersion 和 KeyVaultUri,則不論此參數是否已設定,KeySource 都會設定為 Microsoft.Keyvault。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-KeyVaultFederatedClientId

將多租使用者應用程式的 ClientId 設定為與記憶體帳戶上跨租用戶客戶管理的金鑰伺服器端加密的使用者指派身分識別搭配使用。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-KeyVaultUri

藉由指定 -KeyvaultEncryption 參數來使用 金鑰保存庫 加密時,請使用此選項來指定 金鑰保存庫 的 URI。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-KeyVaultUserAssignedIdentityId

為用來存取記憶體帳戶加密之 Azure KeyVault 的使用者指派身分識別設定資源識別碼,該標識碼必須位於記憶體帳戶的 UserAssignIdentityId 中。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-KeyVersion

藉由指定 -KeyvaultEncryption 參數來使用 金鑰保存庫 加密時,請使用此選項來指定密鑰版本的 URI。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-MinimumTlsVersion

要求記憶體時允許的最低 TLS 版本。

類型:String
接受的值:TLS1_0, TLS1_1, TLS1_2
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Name

指定要修改的記憶體帳戶名稱。

類型:String
別名:StorageAccountName, AccountName
Position:1
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-NetworkRuleSet

NetworkRuleSet 可用來定義防火牆和虛擬網路的組態規則集,以及設定網路屬性的值,例如允許略過規則的服務,以及如何處理不符合任何已定義規則的要求。

類型:PSNetworkRuleSet
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-PublicNetworkAccess

允許或不允許公用網路存取記憶體帳戶。可能的值包括:『Enabled』、『Disabled』。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-PublishInternetEndpoint

指出是否要發佈因特網路由記憶體端點

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-PublishMicrosoftEndpoint

指出是否要發佈 Microsoft 路由記憶體端點

類型:Boolean
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ResourceGroupName

指定要在其中修改記憶體帳戶的資源群組名稱。

類型:String
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-RoutingChoice

路由選擇會定義使用者選擇的網路路由類型。 可能的值包括:'MicrosoftRouting'、'InternetRouting'

類型:String
接受的值:MicrosoftRouting, InternetRouting
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-SasExpirationPeriod

此帳戶的 SAS 到期期間,是時間範圍且精確到秒數。

類型:TimeSpan
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-SkuName

指定記憶體帳戶的 SKU 名稱。 此參數可接受的值為:

  • Standard_LRS - 本地備援記憶體。
  • Standard_ZRS - 區域備援記憶體。
  • Standard_GRS - 異地備援記憶體。
  • Standard_RAGRS - 讀取許可權異地備援記憶體。
  • Premium_LRS - 進階本地備援記憶體。
  • Standard_GZRS - 異地備援區域備援記憶體。
  • Standard_RAGZRS - 讀取許可權異地備援區域備援記憶體。 您無法將Standard_ZRS和Premium_LRS類型變更為其他帳戶類型。 您無法將其他帳戶類型變更為Standard_ZRS或Premium_LRS。
類型:String
別名:StorageAccountType, AccountType, Type
接受的值:Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Premium_LRS, Standard_GZRS, Standard_RAGZRS
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-StorageEncryption

指出是否要將記憶體帳戶加密設定為使用Microsoft管理的密鑰。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Tag

索引鍵/值組,格式為伺服器上設定為標籤的哈希表。 例如:@{key0=“value0”;key1=$null;key2=“value2”}

類型:Hashtable
別名:Tags
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-UpgradeToStorageV2

將記憶體帳戶種類從記憶體或 BlobStorage 升級至 StorageV2。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-UserAssignedIdentityId

為新的記憶體帳戶使用者指派的身分識別設定資源識別碼,身分識別將會與 Azure KeyVault 等密鑰管理服務搭配使用。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-UseSubDomain

指出是否啟用間接 CName 驗證。

類型:Nullable<T>[Boolean]
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

類型:SwitchParameter
別名:wi
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

String

Hashtable

輸出

PSStorageAccount