你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Set-AzureKeyVaultManagedStorageSasDefinition

为给定的密钥库托管Azure 存储帐户设置具有密钥库的共享访问签名(SAS)定义。

警告

AzureRM PowerShell 模块已自 2024 年 2 月 29 日起正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可运行,但不再受到维护或支持,任何继续使用的行为都由用户自行决定并自行承担风险。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

Set-AzureKeyVaultManagedStorageSasDefinition
   [-VaultName] <String>
   [-AccountName] <String>
   [-Name] <String>
   [-TemplateUri] <String>
   [-SasType] <String>
   [-Disable]
   [-Tag <Hashtable>]
   -ValidityPeriod <TimeSpan>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzureKeyVaultManagedStorageSasDefinition
   [-InputObject] <PSKeyVaultManagedStorageAccountIdentityItem>
   [-Name] <String>
   [-TemplateUri] <String>
   [-SasType] <String>
   [-Disable]
   [-Tag <Hashtable>]
   -ValidityPeriod <TimeSpan>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

使用给定密钥库托管Azure 存储帐户设置共享访问签名(SAS)定义。 这还会设置一个机密,该机密可用于根据此 SAS 定义获取 SAS 令牌。 SAS 令牌是使用这些参数和密钥库托管Azure 存储帐户的活动密钥生成的。

示例

示例 1:设置帐户类型 SAS 定义,并基于它获取当前 SAS 令牌

PS C:\> $sa = Get-AzureRmStorageAccount -Name mysa -ResourceGroupName myrg
PS C:\> $kv = Get-AzureRmKeyVault -VaultName mykv
PS C:\> Add-AzureKeyVaultManagedStorageAccount -VaultName $kv.VaultName -AccountName $sa.StorageAccountName -AccountResourceId $sa.Id -ActiveKeyName key1 -RegenerationPeriod 180
PS C:\> $sctx = New-AzureStorageContext -StorageAccountName $sa.StorageAccountName -Protocol Https -StorageAccountKey Key1
PS C:\> $start = [System.DateTime]::Now.AddDays(-1)
PS C:\> $end = [System.DateTime]::Now.AddMonths(1)
PS C:\> $at = New-AzureStorageAccountSasToken -Service blob,file,Table,Queue -ResourceType Service,Container,Object -Permission "racwdlup" -Protocol HttpsOnly -StartTime $start -ExpiryTime $end -Context $sctx
PS C:\> $sas = Set-AzureKeyVaultManagedStorageSasDefinition -AccountName $sa.StorageAccountName -VaultName $kv.VaultName -Name accountsas -TemplateUri $at -SasType 'account' -ValidityPeriod ([System.Timespan]::FromDays(30))
PS C:\> Get-AzureKeyVaultSecret -VaultName $kv.VaultName -Name $sas.Sid.Substring($sas.Sid.LastIndexOf('/')+1)

在保管库“mykv”中的 KeyVault 托管存储帐户“mysa”上设置帐户 SAS 定义“accountsas”。 具体而言,上述序列执行以下操作:

  • 获取一个(预先存在的)存储帐户
  • 获取一个(预先存在的)密钥保管库
  • 将 KeyVault 管理的存储帐户添加到保管库,将 Key1 设置为活动密钥,并且重新生成期为 180 天
  • 使用 Key1 设置指定存储帐户的存储上下文
  • 为服务 Blob、文件、表和队列创建帐户 SAS 令牌,用于资源类型服务、容器和对象,其中包含所有权限,通过 https 以及指定的开始日期和结束日期
  • 在保管库中设置 KeyVault 托管的存储 SAS 定义,模板 URI 作为上面创建的 SAS 令牌,SAS 类型为“account”,有效期为 30 天
  • 从对应于 SAS 定义的 KeyVault 机密中检索实际访问令牌

参数

-AccountName

密钥库托管存储帐户名称。 Cmdlet 从保管库名称构造托管存储帐户名称的 FQDN,当前选定的环境和托管存储帐户名称。

类型:String
别名:StorageAccountName
Position:1
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 azure 通信的凭据、帐户、租户和订阅

类型:IAzureContextContainer
别名:AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Disable

禁用 sas 定义用于生成 sas 令牌。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

ManagedStorageAccount 对象。

类型:PSKeyVaultManagedStorageAccountIdentityItem
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Name

存储 sas 定义名称。 Cmdlet 从保管库名称(当前选定的环境、存储帐户名称和 sas 定义名称)构造存储 sas 定义的 FQDN。

类型:String
别名:SasDefinitionName
Position:2
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-SasType

存储 SAS 类型。

类型:String
Position:4
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Tag

以哈希表的形式进行键值对。 例如:@{key0=“value0”;key1=$null;key2=“value2”}

类型:Hashtable
别名:Tags
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-TemplateUri

存储 SAS 定义模板 URI。

类型:String
Position:3
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-ValidityPeriod

用于在生成 sas 令牌时设置 SAS 令牌到期时间的有效期

类型:Nullable<T>[TimeSpan]
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-VaultName

保管库名称。 Cmdlet 基于名称和当前所选环境构造保管库的 FQDN。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

PSKeyVaultManagedStorageAccountIdentityItem

参数:InputObject (ByValue)

输出

PSKeyVaultManagedStorageSasDefinition