你当前正在访问 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