Skip to content

Instantly share code, notes, and snippets.

@roxsross
Last active April 20, 2022 14:16
Show Gist options
  • Save roxsross/c2f5ae8b90b8fdae07328430b0a1ae08 to your computer and use it in GitHub Desktop.
Save roxsross/c2f5ae8b90b8fdae07328430b0a1ae08 to your computer and use it in GitHub Desktop.
import boto3
import base64
from botocore.exceptions import ClientError
import json
def get_secret(secret_name: str, region_name: str = 'us-east-1'):
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=region_name
)
try:
get_secret_value_response = client.get_secret_value(
SecretId=secret_name
)
except ClientError as e:
if e.response['Error']['Code'] == 'DecryptionFailureException':
raise e
elif e.response['Error']['Code'] == 'InternalServiceErrorException':
raise e
elif e.response['Error']['Code'] == 'InvalidParameterException':
raise e
elif e.response['Error']['Code'] == 'InvalidRequestException':
raise e
elif e.response['Error']['Code'] == 'ResourceNotFoundException':
raise e
else:
if 'SecretString' in get_secret_value_response:
secret = get_secret_value_response['SecretString']
else:
decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])
if secret:
secrets = json.loads(secret)
elif decoded_binary_secret:
secrets = json.loads(decoded_binary_secret)
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment