Rufen Sie mithilfe von.NET mit clientseitigem Caching einen geheimen Wert von Secrets Manager ab - AWS Secrets Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Rufen Sie mithilfe von.NET mit clientseitigem Caching einen geheimen Wert von Secrets Manager ab

Wenn Sie ein Secret abrufen, können Sie die .NET-basierte Caching-Komponente von Secrets Manager verwenden, um es für zukünftige Verwendung zu cachen. Das Abrufen eines gecacheten Secrets ist schneller als das Abrufen aus Secrets Manager. Da für den Aufruf von Secrets-Manager-Manager-APIs Kosten anfallen, kann die Verwendung eines Caches Ihre Kosten senken. Alle Möglichkeiten, wie Sie Secrets abrufen können, finden Sie unter Holen Sie sich Geheimnisse.

Die Cache-Richtlinie ist Least Recently Used (LRU). Wenn der Cache also ein Secret verwerfen muss, verwirft er das am wenigsten verwendete Secret. Standardmäßig aktualisiert der Cache Secrets jede Stunde. Sie können konfigurieren, wie oft das Secret im Cache aktualisiert wird, und Sie können den Secret-Abruf anbinden, um weitere Funktionalität hinzuzufügen.

Der Cache erzwingt keine Garbage Collection, sobald Cache-Referenzen freigegeben wurden. Die Cache-Implementierung beinhaltet keine Cache-Invalidierung. Die Cache-Implementierung konzentriert sich auf den Cache selbst und ist weder sicherheitsgehärtet noch fokussiert. Wenn Sie zusätzliche Sicherheit benötigen, z. B. das Verschlüsseln von Elementen im Cache, verwenden Sie die bereitgestellten Schnittstellen und abstrakten Methoden.

Zum Verwenden der Komponente ist Folgendes erforderlich:

  • .NET Framework ab Version 4.6.2 oder .NET Standard aber Version 2.0. Siehe Download von .NET auf der Microsoft-Website.

  • Das AWS SDK for .NET. Siehe AWS SDKs.

Informationen zum Herunterladen des Quellcodes finden Sie unter Caching-Client für .NET auf GitHub.

Um den Cache zu verwenden, instanziieren Sie ihn zuerst und rufen Sie dann Ihr Secret mit GetSecretString oder GetSecretBinary auf. Bei aufeinanderfolgenden Abrufen gibt der Cache die gecachete Kopie des Secrets zurück.

Tun Sie Folgendes, um das Caching-Paket zu erhalten
  • Führen Sie eine der folgenden Aktionen aus:

    • Führen Sie den folgenden .NET-CLI-Befehl in Ihrem Projektverzeichnis aus.

      dotnet add package AWSSDK.SecretsManager.Caching --version 1.0.6
    • Fügen Sie die folgende Paketreferenz zu Ihrer .csproj-Datei hinzu.

      <ItemGroup> <PackageReference Include="AWSSDK.SecretsManager.Caching" Version="1.0.6" /> </ItemGroup>

Erforderliche Berechtigungen:

  • secretsmanager:DescribeSecret

  • secretsmanager:GetSecretValue

Weitere Informationen finden Sie unter Berechtigungsreferenz.

Beispiel Ein Secret abrufen

Das folgende Codebeispiel zeigt eine Methode, die ein Geheimnis mit dem Namen abruft. MySecret

using Amazon.SecretsManager.Extensions.Caching; namespace LambdaExample { public class CachingExample { private const string MySecretName ="MySecret"; private SecretsManagerCache cache = new SecretsManagerCache(); public async Task<Response> FunctionHandlerAsync(string input, ILambdaContext context) { string MySecret = await cache.GetSecretString(MySecretName); // Use the secret, return success } } }
Beispiel Konfigurieren der Aktualisierungsdauer von Time to Live (TTL)-Caches

Das folgende Codebeispiel zeigt eine Methode, die ein Geheimnis mit dem Namen abruft MySecretund die Aktualisierungsdauer des TTL-Caches auf 24 Stunden festlegt.

using Amazon.SecretsManager.Extensions.Caching; namespace LambdaExample { public class CachingExample { private const string MySecretName = "MySecret"; private static SecretCacheConfiguration cacheConfiguration = new SecretCacheConfiguration { CacheItemTTL = 86400000 }; private SecretsManagerCache cache = new SecretsManagerCache(cacheConfiguration); public async Task<Response> FunctionHandlerAsync(string input, ILambdaContext context) { string mySecret = await cache.GetSecretString(MySecretName); // Use the secret, return success } } }