首页 > 解决方案 > Azure KeyVault Secret 即将到期列表以电子邮件形式作为通知

问题描述

我正在尝试将已过期和即将过期的机密列表发送到电子邮件 ID。但我无法看到即将到期的秘密。有人帮助如何接近即将到期的 azure keyVault 机密吗?

我正在使用以下代码:

    if ($secret.Expires) {
        $secretExpiration = Get-date $secret.Expires -Format yyyyMMdd
        if ($ExpirationDate -gt $secretExpiration) {
            if ($CurrentDate -lt $secretExpiration) {
                $NearExpirationSecrets += New-Object PSObject -Property @{
                    Name           = $secret.Name;
                    Category       = 'SecretNearExpiration';
                    KeyVaultName   = $KeyVault.VaultName;
                    ExpirationDate = $secret.Expires;
                }
            }

标签: azurepowershellazure-keyvault

解决方案


您可以在下面尝试我的脚本,在我的示例中,A secret that will expire in 7 days这意味着secret is about to expired该脚本会在密钥库中获取所有即将过期的秘密。

$KeyVault = Get-AzKeyVault -ResourceGroupName <group-name> -VaultName joykeyvault 
$secrets = Get-AzKeyVaultSecret -VaultName joykeyvault 
$Date = Get-Date (Get-Date).AddDays(7) -Format yyyyMMdd
$CurrentDate = Get-Date -Format yyyyMMdd
$NearExpirationSecrets = @()

foreach($secret in $secrets){
    if($secret.Expires) {
    $secretExpiration = Get-Date $secret.Expires -Format yyyyMMdd
    if($secretExpiration -lt $Date -and $secretExpiration -gt $CurrentDate){
           $NearExpirationSecrets += New-Object PSObject -Property @{
                    Name           = $secret.Name;
                    Category       = 'SecretNearExpiration';
                    KeyVaultName   = $KeyVault.VaultName;
                    ExpirationDate = $secret.Expires;
                }

    }
}
}

在此处输入图像描述


推荐阅读