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

Set-AzKeyVaultManagedStorageSasDefinition

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

语法

Set-AzKeyVaultManagedStorageSasDefinition
   [-VaultName] <String>
   [-AccountName] <String>
   [-Name] <String>
   [-TemplateUri] <String>
   [-SasType] <String>
   [-Disable]
   [-Tag <Hashtable>]
   -ValidityPeriod <TimeSpan>
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzKeyVaultManagedStorageSasDefinition
   [-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 令牌

$sa = Get-AzStorageAccount -Name mysa -ResourceGroupName myrg
$kv = Get-AzKeyVault -VaultName mykv
Add-AzKeyVaultManagedStorageAccount -VaultName $kv.VaultName -AccountName $sa.StorageAccountName -AccountResourceId $sa.Id -ActiveKeyName key1 -RegenerationPeriod ([System.Timespan]::FromDays(180))
$sctx = New-AzStorageContext -StorageAccountName $sa.StorageAccountName -Protocol Https -StorageAccountKey Key1
$start = [System.DateTime]::Now.AddDays(-1)
$end = [System.DateTime]::Now.AddMonths(1)
$at = "sv=2018-03-28&ss=bfqt&srt=sco&sp=rw&spr=https"
$sas = Set-AzKeyVaultManagedStorageSasDefinition -AccountName $sa.StorageAccountName -VaultName $kv.VaultName -Name accountsas -TemplateUri $at -SasType 'account' -ValidityPeriod ([System.Timespan]::FromDays(30))
Get-AzKeyVaultSecret -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
别名:AzContext, 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

输出

PSKeyVaultManagedStorageSasDefinition