Buscar este blog

Aviso

El autor de éste blog no se hace responsable de los posibles daños o perdidas de información, que pudieran ocasionarse en su sistema o su vida por la aplicación de la información aquí contenida.

jueves, 26 de noviembre de 2020

Qué tal si nos ahorramos la partición de SWAP y creamos un bonito archivo volátil?

Crear un archivo donde se guarde el swap, en mi caso fue de 30GB:

sudo fallocate -l 30G /home/swapfile

sudo chmod 600 /home/swapfile

sudo mkswap /home/swapfile 

Se monta el swap

sudo swapon /home/swapfile

Para que el montado persista después del reinicio editar /etc/fstab y agregar:

/home/swapfile swap swap defaults 0 0

Puedes ver si todo va bien

sudo swapon --show

sudo free -h


Si algo te quedó mal puede reiniciar el proceso eliminando el archivo swap:

sudo swapoff -v /home/swapfile

Y quitar del archivo /etc/fstab:

/home/swapfile swap swap defaults 0 0

Finalmente eliminar el archivo:

sudo rm /home/swapfile




domingo, 4 de octubre de 2020

¿Qué hacer si hice commits con un usuario incorrecto?

El problema es sencillo de explicar, cuando trabajas con muchas cuentas de servicios de git es probable que en algunos de ellos tengas direcciones de correo asociadas diferentes, tal vez en una uses yahoo y en otro gmail, y esas respectivas cuentas deban ser usadas, en el pasado he hecho scripts que cambian rápidamente entre estos perfiles https://github.com/juusechec/git-profile pero, qué pasa si ya lo hiciste mal? Si tienes permisos de reescritura en la rama (hacer commits forzados) es bastante fácil la labor, checa esto!
# sobreescribe todo en todo lado, así que ten cuidado y revisa las ramas locales y los tags antes de subir nada
git filter-branch --env-filter '
WRONG_EMAIL="email@equivocado.com.co"
NEW_NAME="Nombre Correcto"
NEW_EMAIL="email@correcto.com"
if [ "$GIT_COMMITTER_EMAIL" = "$WRONG_EMAIL" ]
then
  export GIT_COMMITTER_NAME="$NEW_NAME"
  export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$WRONG_EMAIL" ]
then
  export GIT_AUTHOR_NAME="$NEW_NAME"
  export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
# el "-f" es forzado, es un comando potencialmente destructivo, así que ten cuidado al usarlo, revisa con "$ git log" lo que vas a subir
git push origin HEAD -f
Espero que les sea de utilidad como a mí! Buena suerte.

sábado, 3 de octubre de 2020

"Montar" un directorio en una partición diferente sin usar el comando mount o /etc/fstab

Para quienes en esta era sufrimos por tener varios discos duros o tener varias particiones unas con más espacio que otras, se nos hace conveniente que las carpetas que crecen sin control en una partición pequeña, crezcan en una partición diferente, por tanto, qué tal si carpetas como las de logs o aplicaciones, hacemos que crezcan en la partición de /home? /home tiene suficiente espacio mientras / no, así que manos a la obra!
sudo su
mkdir /home/var
mv /var/log /home/var/log
ln -s /home/var/log /var/log
Espero que esto les haya servido, buena suerte!

miércoles, 26 de agosto de 2020

Compartir secretos entre cuentas AWS

 

Requisitos:

- Cuenta consumidor (cuenta_consumidor)
- Usuario consumidor en la cuenta consumidor (jorge-usuario)
- Cuenta secretos (cuenta_secretos)
- Clave de KMS administrada por el cliente en la cuenta de secretos (jorge-kms-key)
- Secreto de Secrets Manager usando clave de cifrado jorge-kms-key en la cuenta secretos (jorge-secreto)

1) Crear en IAM cuenta consumidor una nueva política y agregársela al usuario que va a consumir el secreto: (si la cuenta es admin no es necesario)

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
// ARN DEL SECRETO
"Resource": "arn:aws:secretsmanager:tu-region:cuenta_secretos:secret:jorge-secreto"
},
{
"Effect": "Allow",
"Action": "kms:Decrypt",
// ARN DEL DE LA LLAVE KMS
"Resource": "arn:aws:kms:tu-region:cuenta_secretos:key/jorge-kms-key"
}
]
}


2) Crear en la cuenta de secretos una llave KMS puedes editar la política en el CLI agregando los statemets:
,
{
"Sid": "AllowUseOfTheKey",
"Effect": "Allow",
"Principal": {
// ARN DEL USUARIO
"AWS": "arn:aws:iam::cuenta_consumidor:user/jorge-usuario"
},
"Action": [
"kms:Decrypt",
"kms:DescribeKey"
],
"Resource": "arn:aws:kms:tu-region:cuenta_secreto:key/jorge-kms-key"
}


3) Crear un secreto en la cuenta de secretos, que use la llave KMS del paso anterior "jorge-kms-key", además hay que editar la política del secreto y dejarla de la siguiente manera:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
// ARN DEL USUARIO
"AWS": "arn:aws:iam::cuenta_consumidor:user/jorge-usuario"
},
"Action": "secretsmanager:GetSecretValue",
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"secretsmanager:VersionStage": "AWSCURRENT"
}
}
}
]
}

4) Obtener el secreto con AWS CLI:

aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:tu-region:cuenta_secretos:secret:jorge-secreto --version-stage AWSCURRENT

5) O desde boto3:

import boto3
 
def lambda_handler(event, context):
print('lambda_handler!')
region_name = "ru-region"

session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=region_name
)
get_secret_value_response = client.get_secret_value(
SecretId='arn del secreto',
        VersionStage='AWSCURRENT' # Importante! u opcional?
)
print('get_secret_value_response', get_secret_value_response)

Con esto termina! Buena suerte.


Referencias:

- https://aws.amazon.com/es/premiumsupport/knowledge-center/secrets-manager-share-between-accounts/

Más populares

Archivo del blog