繁体   English   中英

在 aws secrets manager 中实现秘密缓存的正确方法

[英]right way to implement secrets caching in aws secrets manager

您好,我已经按照这个repo实施了秘密缓存。 本质上添加了以下代码:

session = boto3.session.Session()
    client = session.client(
        service_name='secretsmanager',
        region_name=region_name
    )
try: 
    # create a cache
    cache_config = SecretCacheConfig(secret_refresh_interval=14400) # refresh cache every 4 hours
    cache = SecretCache(config=cache_config, client=client)
    # get secret string from the cache
    get_secret_value_response = cache.get_secret_string(secret_name)
except ClientError as e:
    raise e 

但我不确定它是否有效,因为 api 调用后续请求所花费的时间并没有减少。 它仍然(大致)保持与缓存之前的状态相同。

有没有一种方法可以验证缓存是否有效,或者它是否是正确的实现方式?

--- 编辑在缓存之前我按如下方式获取秘密:

secret_value_response = client.get_secret_value(
        SecretId=secret_name
    )

基本上我删除了上面的代码并添加了缓存代码而不是它。

您不得随时重新创建缓存。 您创建一次并稍后通过方法调用或装饰器重用它: https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_cache-decor-string.html

您可以使用环境变量在初始化时加载变量,并在项目回购中使用该变量。 这将帮助您组织代码,并通过最大限度地减少对秘密管理器的请求数量来帮助您节省 AWS 成本。 这可以在 CI/CD 管道中使用 Github 操作进行配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM