Saltar a contenido

Amazon AWS - Secrets Manager

Nada puede ser más sencillo que interactuar con Claves Secretas que el complemento BotCity para AWS Secrets Manager.

Administra tus credenciales.

Instalación

pip install botcity-aws-secretsmanager-plugin

Importando el complemento

Después de instalar este paquete, el siguiente paso es importar el paquete en tu código y comenzar a utilizar las funciones.

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin

Configuración de la conexión

Note

Hay dos formas diferentes de autenticación.

1. Creando la carpeta .aws en el directorio principal, necesitas crear dos archivos.

# ~/.aws/config
[default]
region=<region_code>
# ~/.aws/credentials
[default]
aws_access_key_id=<your_aws_access_key_id>
aws_secret_access_key=<your_aws_secret_access_key>

2. Pasando las credenciales en el constructor de la clase.

# Using the `.aws` folder
secrets = BotSecretsManagerPlugin()

# Alternative using the credentials as constructor arguments
secrets = BotSecretsManagerPlugin(
    use_credentials_file=False,
    access_key_id='<your_aws_access_key_id>',
    secret_access_key='<your_aws_secret_access_key>',
    region_name='<region_code>'
)

Información: Si no se encuentra el secreto

Algunos métodos devuelven None si no encuentran el secreto. Si deseas recibir el error y manejarlo, utiliza RAISE_IF_NOT_FOUND=True

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin
secret = BotSecretsManagerPlugin()
secret.RAISE_IF_NOT_FOUND=True  # el valor predeterminado es False

Operaciones con secretos

Crear nuevo secreto

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin

secret = BotSecretsManagerPlugin()
response = secret.create_secret(
    secret_name='test',
    secret_value={'key': 'name'},  # dict or str
    description='Test description.')
print(response)

# Or
secret["test"] = {'key': 'name'}  # description=''

Listar secretos

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin

secret = BotSecretsManagerPlugin()
print(secret.list_secrets())

Obtener información del secreto

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin

secret = BotSecretsManagerPlugin()
print(secret.describe_secret(secret_name='test'))

Obtener valor del secreto

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin

secret = BotSecretsManagerPlugin()
print(secret.get_secret_value(secret_name='test'))

# Or
print(secret["test"])

Actualizar valor del secreto

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin

secret = BotSecretsManagerPlugin()
print(secret.update_secret(secret_name='test', secret_value={'key2': 'value2'}, description='New value'))

Eliminar secreto

Warning

Si eliminas un secreto con el parámetro without_recovery=True, entonces no tendrás oportunidad de recuperar el secreto. Pierdes el secreto permanentemente.

from botcity.plugins.aws.secretsmanager import BotSecretsManagerPlugin

secret = BotSecretsManagerPlugin()
print(secret.delete_secret(secret_name='test', without_recovery=True))

# Or
del secret["test"]  # without_recovery=False