- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Powershell 中编写了一个程序,该程序按计划在 Azure Functions 应用程序中运行。为了避免硬编码凭据,我创建了一个 Azure Key Vault 来存储 secret 。我在 Azure Function 中创建了托管标识,在 Azure Key Vault 中创建了 secret ,然后在 Azure Function 中创建了应用程序设置,并使用 URL 指向 Azure Key Vault 中的 secret 。该程序引用应用程序 secret (APPSETTING) 并按预期运行:
$uSecret = $ENV:APPSETTING_SecretUsername
$pSecret = $ENV:APPSETTING_SecretPassword
$sasSecret = $ENV:APPSETTING_SecretSAS
$securePassword = ConvertTo-SecureString -String $pSecret -AsPlainText -Force
$UserCredential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $uSecret, $securePassword
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
但是我注意到,如果我通过 Windows Powershell(以管理员身份运行)在本地计算机上运行相同的程序,并且将上述行修改如下,则该程序运行良好 - 这意味着它可以访问 Office 365 和数据湖存储:
$uSecret = (Get-AzKeyVaultSecret -VaultName 'auditkeyvault' -Name 'SecretUsername').SecretValueText
$pSecret = (Get-AzKeyVaultSecret -VaultName 'auditkeyvault' -Name 'SecretPassword').SecretValueText
$sasSecret = (Get-AzKeyVaultSecret -VaultName 'auditkeyvault' -Name 'SecretSAS').SecretValueText
$securePassword = ConvertTo-SecureString -String $pSecret -AsPlainText -Force
$UserCredential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $uSecret, $securePassword
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
为什么我能够在我的计算机上本地运行它?我本以为只有 Azure Functions 应用程序能够从 Azure Key Vault 检索 secret ,并且任何其他资源(例如我的本地计算机)都会被阻止?
这不是为具有特定 URL 的 Azure Functions 创建托管标识的全部目的,以便它可以将自己标识为经过身份验证/授权的资源来访问 key 吗?然而,当我使用 (Get-AzKeyVaultSecret -VaultName 'auditkeyvault' -Name 'SecretUsername').SecretValueText
在本地运行程序时,我的程序仍然能够检索 key 并运行!
有人可以解释一下为什么会发生这种情况,或者我是否误解了什么?
非常感谢!
(PS。这都是在带有示例数据的试用实例上运行的,因此目前没有实际数据受到损害)
最佳答案
keystore 的目的是安全地保守您的 secret 。
任何授权凭据(通过 Keyvault 访问策略)都可以通过 REST API 访问这些 secret 。
要访问 secret ,您需要:
Get-AzKeyVaultSecret
只是检索 secret 的另一种方法。
它可以在您的计算机上运行,因为您的 session 仍然经过身份验证,并且您的 AzureAd 帐户具有对该 keyvault key 的读取访问权限。
您可以有效地使用任何 Az
命令,而无需每次都重新进行身份验证。调用 Get-AzContext
获取当前上下文详细信息。
Connect-AzAccount
在以下位置自动使用时,请务必保存访问 token 和其他相关信息:C:\Users\MAK\.Azure\AzureRmContext.json
如果您首先断开连接 Disconnect-AzAccount
并尝试再次获取 key 而不重新进行身份验证,那么它将失败。
注意如果您对 Az
模块在磁盘上保存 token 感到不满意,可以通过 Disable-AzContextAutosave
禁用默认行为
关于powershell - 安全地访问 Key Vault secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63751380/
我正在尝试在我的 minikube 上启动并运行 keycloak。 我正在安装keycloak helm upgrade -i -f kubernetes/keycloak/values.yaml
我将我的数据库密码存储到AWS密钥管理器的Secret Value字段中。如果我使用以下代码,如何检索密码值?。在密钥管理器中定义的密钥:密钥在密钥管理器中定义的值:DBPwd。当我写入日志文件时,上
I am storing my database password into the Secret value field in the aws secret manager. How do I
我正在尝试在 AWS CDK 上组合一个相对简单的堆栈,其中涉及来自 aws-ecs-patterns 的 ApplicationLoadBalancedFargateService。 我的问题涉及
今天我在悠闲地阅读时偶然发现了 Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryp
不是一个真正的编程问题,但很想知道 Kubernetes 或 Minikube 如何管理 secret 并在多个节点/pod 上使用它? 假设我创建了一个 secret 来使用 kubectl 提取图
我需要从 AWS dynamoDB 和第三方 https 服务中获取元素并将这些结果合并到 AWS appSyn 中并将结果作为 graphQL 响应发回 我正在使用的第三方服务需要客户端证书。我没有
我收到一个错误: gpg: no default secret key: No secret key gpg: [stdin]: clearsign failed: No secret key GPG
我正在尝试为 kubernetes 集群设置私有(private) docker 镜像注册表。我正在关注 link $ cat ~/.docker/config.json | base64 ew
当我开发一个API服务器时,我需要给API服务器一些账户信息,这些信息不应该给任何人看。K8s对这种情况推荐secret,所以我用了。 但我想知道这个 secret 是否真的是 secret 。 se
在大多数有关在 Kubernetes 中使用 secret 的示例中,您都可以找到类似的示例: apiVersion: v1 kind: Secret metadata: name: mysecr
我正在与 terraform 合作,在 azure 中启动不同的资源。其中一些资源包含敏感数据,我希望将其安全地存储在 aws Secret Manager 中。这在 Terraform 中是可行的过
我有带有有效 key 的 Azure 应用程序注册。 我正在尝试使用 v1.0 获取 token ,如下所示(clientId 是上述应用程序注册的 ID) $body = @{ grant_
本文讨论如何安装 secret 卷。 https://learn.microsoft.com/en-us/azure/container-instances/container-instances-v
我正在使用 kubernetes 将 Rails 应用程序部署到谷歌容器引擎。 遵循 kubernetes secret 文档:http://kubernetes.io/v1.1/docs/user-
我正在与 terraform 合作,在 azure 中启动不同的资源。其中一些资源包含敏感数据,我希望将其安全地存储在 aws Secret Manager 中。这在 Terraform 中是可行的过
我有带有有效 key 的 Azure 应用程序注册。 我正在尝试使用 v1.0 获取 token ,如下所示(clientId 是上述应用程序注册的 ID) $body = @{ grant_
本文讨论如何安装 secret 卷。 https://learn.microsoft.com/en-us/azure/container-instances/container-instances-v
我有一个 python 脚本,它在 AWS 中创建一些访问 key 并将它们存储在 secret 管理器中。 但是,当我存储 key 时,我收到一条错误消息: The secret value can
我在 Secrets Manager 控制台上创建了一个 key 。然后我尝试使用 Go 代码 quickstart guide喜欢 ctx := context.Background() clien
我是一名优秀的程序员,十分优秀!