Secrets Managerを使用すると、存続時間 (TTL) 期間を通してシークレットを管理できます。 アプリケーションは、安全で便利な方法でSecrets Managerにアクセスできます。 これにより、ハードコードされたシークレットによる機密データ漏洩のリスクを防ぎます。
メリット
データベースアカウントのパスワード、サーバーアカウントのパスワード、SSHキー、AccessKeyシークレットなどのシークレットの漏洩は、データセキュリティに対する主な脅威の1つです。 データリークのセキュリティリスクを軽減するには、シークレットを効果的に保護し、定期的にローテーションする必要があります。 企業が秘密を保護およびローテーションするとき、次の問題が発生する可能性があります。
- 秘密を保護するために、企業はそれらを暗号化する必要があります。 アプリケーション展開のプロセスが長くなり、研究開発 (R&D) とO&Mのコストが高くなります。 プロセスを実施することも困難です。
- 自動秘密回転のためのソフトウェア機能の欠如。 秘密の手動ローテーションは、セキュリティ、O&M、R&Dなどの複数の役割の協力に依存しています。 手動秘密回転プロセスは、開発および実装が困難であり、エラーを起こしやすい。
- 秘密のリークイベントに対する迅速な緊急対応の欠如。 シークレットリークイベントが処理されるときにシステムエラーが発生する可能性があります。
- クラウドリソースに必要なシークレットの集中管理の欠如。 その結果、大規模な管理を実現することができず、管理コストが高い。
- 秘密を暗号化して管理し、ハードコードされた秘密によって引き起こされる貴重な資産の漏洩を防ぎます。 データの安全性が向上します。
- クライアントに安全で便利なアクセス方法を提供し、アプリケーションがコードレスまたは低コードの方法でシークレットを使用できるようにします。
- 緊急対応機能を提供します。 シークレットを手動で1回限り回転させると、アプリケーションは影響を受けません。
- 動的な秘密を高い頻度で回転させることができます。 これにより、各秘密の有効期間が短縮され、秘密の漏洩によって引き起こされるリスクがさらに軽減されます。
- TerraformやResource orchestration Service (ROS) などのAPI操作と操作オーケストレーションツールを使用できます。 これは、集中型および大規模なセキュリティ管理の要件を満たします。
シナリオ
このセクションでは、データベースのユーザー名とパスワードを管理シークレットとして使用します。
- システム管理者は、アプリケーションMyAppからデータベースにアクセスするために使用されるデータベース内のユーザ名とパスワードを構成します。
- 管理者は、ユーザー名とパスワードを保存するために、Secrets ManagerでシークレットオブジェクトMyDbCredsを作成します。
- MyAppがデータベースにアクセスする必要がある場合、MyDbCredsのリクエストをSecrets Managerに送信します。
- Secrets Managerは、暗号文のユーザー名とパスワードを読み取り、それらを復号化してから、HTTPSを介して平文をMyAppに返します。
- MyAppは、Secrets Managerから返された平文を読み取って解析し、ユーザー名とパスワードを取得し、それらを使用してデータベースにアクセスします。
このプロセスでは、MyAppはSecrets ManagerのAPI操作を呼び出して、ユーザー名とパスワードを取得します。 これにより、ハードコードされたシークレットによるデータリークのリスクを防ぎます。 次の図は、secrets Managerのハードコーディングシークレットと呼び出しAPI操作の違いを示しています。
機能
- シークレット暗号化: Secrets Managerは、Key Management Service (KMS) のカスタマーマスターキー (CMK) を使用してシークレットを暗号化します。 CMKを指定するか、Secrets Managerで自動的に作成されるCMKを使用することができます。Secrets Managerは、各リージョンのAlibaba Cloudアカウントごとに独立したCMKを生成します。 使用するCMKを指定しない場合、このCMKはシークレット暗号化に使用されます。
- 動的シークレットの使用: アプリケーションは、secrets Managerクライアントを使用してシークレットを動的に読み取り、最新のシークレットを使用できます。
- 自動シークレットローテーション: Secrets Managerは、特定のタイプのシークレットに対して、すぐに使用できる自動ローテーションをサポートします。 Function Computeを使用して、カスタムスケジュールでシークレットをローテーションすることもできます。
- シークレットアクセス制御と監査の使用: Resource access Management (RAM) を使用して、シークレットへのアクセスを制御できます。 ActionTrailを使用して、シークレットのローテーションや読み取りなどの操作を監査できます。
Secrets Managerの使用
- セキュリティ管理
- アプリケーションの開発とデプロイ
アプリケーションは、KMS SDK、Secrets Managerクライアント、Kubernetesプラグインなどの複数の方法を使用してSecrets Managerにアクセスできます。 アプリケーションは、機密性の高い秘密値を、秘密名に基づいて動的に読み取ることができます。詳細については、「アプリケーションをSecrets Managerに接続する」をご参照ください。