리소스 정책을 통해 외부 계정에 대한 액세스 권한을 부여할 수 있습니다. 자세한 내용은 Secrets Manager Privesc 페이지를 확인하세요. 비밀을 액세스하려면 외부 계정이 비밀을 암호화하는 KMS 키에 대한 액세스도 필요합니다.
Secrets Rotate Lambda를 통한 방법
구성된 Lambda를 호출하여 비밀을 자동으로 회전할 수 있습니다. 공격자가 코드를 변경하여 새로운 비밀을 직접 유출할 수 있습니다.
이는 해당 작업을 위한 람다 코드가 어떻게 보일 수 있는지입니다:
import boto3defrotate_secrets(event,context):# Create a Secrets Manager clientclient = boto3.client('secretsmanager')# Retrieve the current secret valuesecret_value = client.get_secret_value(SecretId='example_secret_id')['SecretString']# Rotate the secret by updating its valuenew_secret_value =rotate_secret(secret_value)client.update_secret(SecretId='example_secret_id', SecretString=new_secret_value)defrotate_secret(secret_value):# Perform the rotation logic here, e.g., generate a new password# Example: Generate a new passwordnew_secret_value =generate_password()return new_secret_valuedefgenerate_password():# Example: Generate a random password using the secrets moduleimport secretsimport stringpassword =''.join(secrets.choice(string.ascii_letters + string.digits) for i inrange(16))return password