全般
AWS Secrets Manager とは何ですか?
AWS Secrets Manager は機密情報管理サービスで、アプリケーション、サービス、IT リソースへのアクセスの保護に役立ちます。このサービスでは、ライフサイクルを通じてデータベース認証情報、API キー、その他の機密情報を簡単に更新、管理、取得できます。Secrets Manager を用いると、AWS クラウド、サードパーティーサービス、オンプレミスのリソースへのアクセスに用いるシークレットにセキュリティを確保し、またこれを管理できます。
なぜ AWS Secrets Manager を使わなければならないのですか?
AWS Secrets Manager はアプリケーション、サービス、IT リソースへのアクセスを保護し、このための自社のインフラストラクチャを運営する先行投資や継続的なメンテナンスコストも不要です。
Secrets Manager は、シークレットを保存、管理するために安全でスケーラブルな方法を求めている IT 管理者に最適です。規制やコンプライアンス要件の遵守を担うセキュリティ管理者は、Secrets Manager を使用して、シークレットをモニタリングし、アプリケーションに影響を与えることなくシークレットを更新できます。アプリケーションにコードで書き込んだシークレットを置き換えたいデベロッパーの方は、Secrets Manager からプログラムでシークレットを取得できます。
AWS Certificate Manager を使うと何ができますか?
AWS Secrets Manager では、シークレットを一元的に保管、取得、アクセスを制限、更新、監査、監視できます。
保管中のシークレットを暗号化することにより、認可されていないユーザーが機密情報を見る可能性を低減できます。シークレットを取得するには、アプリケーション中のプレーンテキストのシークレットを、Secrets Manager API を使用して、シークレットをプログラムで取得するコードに置き換えるだけです。AWS Identity and Access Management (IAM) ポリシーを使用して、こうしたシークレットにアクセスできるユーザーとアプリケーションを制限します。AWS でホストされた、サポートされるデータベースタイプのパスワードの更新は、スケジュールに従って、またはオンデマンドで、アプリケーションに影響を与えるリスクなく行えます。サンプル Lambda 関数を変更することで、この機能を他のシークレットの更新にも拡張できます。Amazon EC2 でホストされている Oracle データベースのパスワードや、OAuth リフレッシュトークンなどの更新も行えます。また、Secrets Manager は AWS CloudTrail、Amazon CloudWatch、Amazon Simple Notification Service (Amazon SNS) と統合するため、シークレットを監査し、モニタリングできます。
AWS Secrets Manager を使うとどのシークレットが管理できますか?
データベース認証情報、オンプレミスリソース認証情報、SaaS アプリケーション認証情報、サードパーティー API キー、Secure Shell (SSH) キーなどのシークレットを管理できます。Secrets Manager を使うと JSON ドキュメントを保存でき、64 KB 以下のどんな小テキストでも管理できるようになります。
AWS Secrets Manager を使うとどのシークレットが更新できますか?
Amazon Relational Database Service (RDS)、Amazon DocumentDB、Amazon Redshift の認証情報をネイティブにローテーションできます。Secrets Manager を拡張すれば、Secrets Manager ドキュメントにあるサンプル AWS Lambda 関数を変更して、EC2 でホストされている Oracle データベースの認証情報や、OAuth リフレッシュトークンなど、他のシークレットを更新することもできます。
私のアプリケーションはどのようにすればこうしたシークレットを使えますか?
まず、お使いのアプリケーションから特定のシークレットへのアクセスを許可する AWS Identity and Access Management (IAM) ポリシーを書く必要があります。次にアプリケーションソースコードで、プレーンテキストのシークレットを、Secrets Manager API を使用して、シークレットをプログラムで取得するコードに置き換えます。完全な詳細と例は、AWS Secrets Manager ユーザーガイドをご覧ください。
AWS Secrets Manager の使用を開始するにはどのようにすればよいのですか?
AWS Secrets Manager の使用を開始する:
- シークレットを特定し、アプリケーション中のどこで使われているかを見つけます。
- AWS 認証情報で AWS マネジメントコンソールにサインインし、Secrets Manager コンソールに移動します。
- Secrets Manager コンソールで、特定したシークレットをアップロードします。別の方法として、AWS SDK または AWS CLI を使用してシークレットをアップロードできます (シークレット 1 つにつき 1 回)。また、スクリプトを書いて、複数のシークレットをアップロードすることもできます。
- シークレットがまだ使用されていない場合は、コンソールにある手順に従って自動更新を設定してください。アプリケーションがシークレットを使っている場合、ステップ (5) と (6) を完了してから自動更新を設定してください。
- 他のユーザーまたはアプリケーションがシークレットを取得する必要がある場合、IAM ポリシーを書いてシークレットへの権限を付与してください。
- アプリケーションを更新して Secrets Manager からシークレットを取得してください。
AWS Secrets Manager はどの AWS リージョンで利用できますか?
AWS の各サービスを現在利用できるリージョンについては、AWS リージョン表をご覧ください。
ローテーション
AWS Secrets Manager はどのようにしてデータベースの認証情報の更新をアプリケーションに影響を与えずに行うのですか?
AWS Secrets Manager では、データベースの認証情報をスケジュールに従って更新するように設定できます。このためセキュリティのベストプラクティスに従い、データベースの認証情報を安全に更新することができます。Secrets Manager で更新が開始されると、お客様から提供されたスーパーデータベース認証情報によって、同じ権限を持つクローンユーザーが別のパスワードで作成されます。その後、そのクローンユーザーの情報が Secrets Manager から、データベース認証情報を取得するデータベースとアプリケーションに通知されます。更新についての詳細は、AWS Secrets Manager 更新ガイドをご覧ください。
データベースの認証情報の更新はオープンな接続に影響を与えますか?
いいえ。接続が確立されると、認証が行われます。AWS Secrets Manager がデータベースの認証情報を更新しても、オープンなデータベース接続は再度認証されません。
いつ AWS Secrets Manager がデータベースの認証情報を更新するかはどのようにすればわかりますか?
Amazon CloudWatch Events を設定すると、AWS Secrets Manager シークレットが更新された際に通知を受け取ることができます。また、Secrets Manager コンソールまたは API を使用して、Secrets Manager の直近のシークレット更新を見ることもできます。
セキュリティ
AWS Secrets Manager は私のシークレットをどのようにして安全にしてくれるのですか?
AWS Secrets Manager では、保管中のシークレットがお客様の所有する暗号化キーで暗号化され、AWS Key Management Service (KMS) に保存されます。AWS Identity and Access Management (IAM) のポリシーを使用してシークレットへのアクセスを制限できます。シークレットを取得すると、Secrets Manager でシークレットが復号され、TLS 上でお客様のローカル環境に安全に送信されます。デフォルトでは、Secrets Manager はシークレット永続的なストレージに書き込みまたはキャッシュしません。
AWS Secrets Manager 内のシークレットはどのようにして使用、管理できますか?
AWS Identity and Access Management (IAM) ポリシーを使用して、特定のシークレットの取得や管理を行うユーザーとアプリケーションに対するアクセス許可を制限できます。例えば、開発環境で使われているシークレットを開発者のみが取得できるようなポリシーを作成できます。詳細は AWS Secrets Manager に対する認証とアクセスコントロールをご覧ください。
AWS Secrets Manager は私のシークレットをどのようにして暗号化するのですか?
AWS Secrets Manager はエンベロープ暗号化 (AES-256 暗号化アルゴリズム) を用いて AWS Key Management Service (KMS) 内のシークレットを暗号化します。
Secrets Manager を初めて使用する際に、シークレットを暗号化する AWS KMS キーを指定できます。KMS キーを指定しない場合、Secrets Manager によってお客様のアカウントに対して AWS KMS デフォルトキーが自動的に作成されます。シークレットが保存されると、Secrets Manager から KMS に対してプレーンテキストと暗号化されたデータキーがリクエストされます。Secrets Manager で、プレーンテキストデータキーを使用してメモリ中のシークレットが暗号化されます。暗号化されたシークレットと暗号化されたデータキーは AWS Secrets Manager で保存、維持されます。シークレットを取得すると、Secrets Manager では、AWS KMS デフォルトキーを使用してデータキーが復号され、プレーンテキストデータキーを使用してシークレットが復号されます。データキーは暗号化された状態で保存され、プレーンテキストでディスクに書き込まれることはありません。また、Secrets Manager はプレーンテキストのシークレット永続的なストレージに書き込みまたはキャッシュしません。
請求
AWS Secrets Manager の利用料金の計算と請求はどのように行われるのですか?
Secrets Manager については、お客様が使用した分に対してのみ料金が発生します。最低料金はありません。サービスの利用を開始するためのセットアップ料金や契約はありません。月末に、その月の使用料金が自動的にお客様のクレジットカードに請求されます。保管するシークレットの数と、各月に行う API リクエストの数に応じて課金されます。
最新の料金情報については、AWS Secrets Manager の料金にアクセスしてください。
無料トライアルはありますか?
はい。AWS Secrets Manager は 30 日間の無料トライアルで、追加料金なしでお試しいただけます。無料トライアルでは、30 日間にわたってシークレットを更新、管理、取得できます。無料トライアルは最初のシークレットを保存すると開始されます。