首页 > 解决方案 > 如何使用 AWS CLI 在 Secret Manager 下删除过去 6 个月未检索到的 AWS Secret

问题描述

我们在 AWS 秘密管理器中创建了许多秘密。我需要帮助才能知道如何批量删除过去 60 天内未使用/检索的所有 AWS 机密(在机密管理器下)。我试图找到一个 AWS CLI 命令来执行此操作,但没有任何效果。

标签: amazon-web-servicesaws-secrets-manager

解决方案


调用list_secrets()返回:

{
    'SecretList': [
        {
            'ARN': 'string',
            'Name': 'string',
            'Description': 'string',
            'KmsKeyId': 'string',
            'RotationEnabled': True|False,
            'RotationLambdaARN': 'string',
            'RotationRules': {
                'AutomaticallyAfterDays': 123
            },
            'LastRotatedDate': datetime(2015, 1, 1),
            'LastChangedDate': datetime(2015, 1, 1),
            'LastAccessedDate': datetime(2015, 1, 1),
            'DeletedDate': datetime(2015, 1, 1),
            ...
        },
    ],
    'NextToken': 'string'
}

LastAccessedDate看起来它对你有用。您可以将它与 AWS CLI 一起使用,如下所示:

aws secretsmanager list-secrets --query 'SecretList[?LastAccessedDate<`2021-06-01`].ARN'

如果你擅长编写 shell 脚本,你可以编写一个脚本然后删除返回的秘密。否则,我建议使用编程语言(例如 Python)来执行它,因为它可能比 Shell 脚本更容易一些。


推荐阅读