# AWS - Secrets Manager Enum

{{#include ../../../banners/hacktricks-training.md}}

## AWS Secrets Manager

AWS Secrets Managerは、**アプリケーション内のハードコーディングされた秘密の使用を排除し、API呼び出しに置き換えることを目的としています**。このサービスは、**すべての秘密のための中央リポジトリとして機能し**、すべてのアプリケーションで均一に管理されることを保証します。

マネージャーは、**秘密のローテーションプロセスを簡素化し**、データベースの資格情報などの機密データのセキュリティ姿勢を大幅に向上させます。さらに、APIキーなどの秘密は、lambda関数の統合により自動的にローテーションできます。

秘密へのアクセスは、詳細なIAMアイデンティティベースのポリシーとリソースベースのポリシーを通じて厳密に制御されています。

異なるAWSアカウントのユーザーに秘密へのアクセスを付与するには、次の必要があります：

1. ユーザーに秘密へのアクセスを許可する。
2. KMSを使用して秘密を復号化するための権限をユーザーに付与する。
3. 外部ユーザーが利用できるようにキーのポリシーを変更する。

**AWS Secrets Managerは、AWS KMSと統合してAWS Secrets Manager内で秘密を暗号化します。**

### **Enumeration**
```bash
aws secretsmanager list-secrets #Get metadata of all secrets
aws secretsmanager list-secret-version-ids --secret-id <secret_name> # Get versions
aws secretsmanager describe-secret --secret-id <secret_name> # Get metadata
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
aws secretsmanager get-secret-value --secret-id <secret_name> --version-id <version-id> # Get value of a different version
aws secretsmanager get-resource-policy --secret-id --secret-id <secret_name>
```
### プリベスカ

{{#ref}}
../aws-privilege-escalation/aws-secrets-manager-privesc/README.md
{{#endref}}

### ポストエクスプロイテーション

{{#ref}}
../aws-post-exploitation/aws-secrets-manager-post-exploitation/README.md
{{#endref}}

### パーシステンス

{{#ref}}
../aws-persistence/aws-secrets-manager-persistence/README.md
{{#endref}}

{{#include ../../../banners/hacktricks-training.md}}
