クライアント側のキャッシュで Python を使用して Secrets Manager のシークレット値を取得する - AWS Secrets Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クライアント側のキャッシュで Python を使用して Secrets Manager のシークレット値を取得する

シークレットを取得するときに、Secrets Manager の Python ベースのキャッシュコンポーネントを使用して、将来使用するためにキャッシュすることができます。キャッシュされたシークレットの取得は、Secrets Manager からの取得よりも高速です。Secrets Manager API を呼び出すにはコストがかかるため、キャッシュを使用するとコストを削減できます。シークレットを取得するすべての方法については、「シークレットの取得」を参照してください。

キャッシュポリシーは LRU (最近最も使われていない) であるため、キャッシュでシークレットを破棄する必要が生じた場合は、最も最近使われていないシークレットが破棄されます。デフォルトでは、1 時間ごとにキャッシュでシークレットが更新されます。キャッシュでシークレットが更新される頻度を設定できるだけでなく、シークレットの取得にフックさせて機能を追加することもできます。

キャッシュ参照が解放されると、キャッシュはガベージコレクションを強制しません。キャッシュの実装には、キャッシュの無効化は含まれていません。キャッシュを実装するのはキャッシュを使用するためであり、セキュリティを強化するためでもセキュリティに焦点を当てるためでもありません。キャッシュ内のアイテムを暗号化するなど、セキュリティを強化する必要がある場合は、所定のインターフェイスと抽象メソッドを使用してください。

このコンポーネントを使用するには、以下が必要です。

ソースコードをダウンロードするには、「」の「Secrets Manager の Python ベースのキャッシュクライアントコンポーネント」を参照してください GitHub。

コンポーネントをインストールするには、次のコマンドを使用します。

$ pip install aws-secretsmanager-caching

必要な許可:

  • secretsmanager:DescribeSecret

  • secretsmanager:GetSecretValue

詳細については、「アクセス許可に関するリファレンス」を参照してください。

例 シークレットを取得する

次の例は、mysecret という名前のシークレットのシークレット値を取得する方法を示しています。

import botocore import botocore.session from aws_secretsmanager_caching import SecretCache, SecretCacheConfig client = botocore.session.get_session().create_client('secretsmanager') cache_config = SecretCacheConfig() cache = SecretCache( config = cache_config, client = client) secret = cache.get_secret_string('mysecret')