es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

CLI de AWS – Crear un script para agregar mi IP al grupo de seguridad.

Estoy intentando crear un script para añadir mi dirección IP a los grupos de seguridad de AWS VPC algo así como:

aws ec2 modify-security-group-rules --group-id GROUPID --security-group-rules SecurityGroupRuleId= RULEID SecurityGroupRule={IpProtocol:'tcp',FromPort:433,ToPort:433,CidrIpv4:'MYIP'}

Pero sigo recibiendo diferentes errores como:

IpProtocol:tcp, type: <class 'str'="">, valid types: <class 'dict'="">

¿Alguien puede ayudar a descifrar la sintaxis correcta para esto?

ACTUALIZACIÓN:
Intenté una nueva sintaxis que parece funcionar mejor:

SecurityGroupRule={{IpProtocol=tcp},{FromPort=433},{ToPort=433},{CidrIpv4='IP'}}

Pero ahora recibo un error diferente de AWS:

Invalid value for portRange. Must specify both from and to ports with TCP/UDP.

ACTUALIZACIÓN: Para referencia, aquí está el método que utilicé como solución (basado en la respuesta de John Rotenstein). En lugar de modificar la regla, creo una nueva cada vez y guardo el ID de la regla para poder eliminarla la próxima vez que ejecute el script:

“`
IP=`curl -s http://whatismyip.akamai.com/`
aws ec2 revoke-security-group-ingress \
–group-id GROUP_ID \
–security-group-rule-ids $(cat ruleid_1.txt)

aws ec2 authorize-security-group-ingress –group-id GROUP_ID\
–ip-permissions “IpProtocol”=”tcp”,”FromPort”=433,”ToPort”=443,”IpRanges”=”[{‘CidrIp=$IP/32,Description=Shalev}]”|jq ‘.SecurityGroupRules[0].SecurityGroupRuleId’ -r > ruleid_1.txt
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar tu dirección IP a un grupo de seguridad de AWS VPC utilizando un script de bash, la sintaxis correcta para el comando aws-cli es:

    aws ec2 authorize-security-group-ingress \
        --group-id ID_DE_GRUPO \
        --ip-permissions IpProtocol=tcp,FromPort=433,ToPort=433,IpRanges='[{CidrIp=MIDIRECCIÓNIP/32}]'
    

    Reemplaza ID_DE_GRUPO con el ID del grupo de seguridad que deseas modificar, y reemplaza MIDIRECCIÓNIP con tu dirección IP real.

    El mensaje de error que recibiste inicialmente (IpProtocol:tcp, type: <class 'str'="">, valid types: <class 'dict'="">) indica que el valor IpProtocol debe ser un diccionario en lugar de una cadena de texto. En la sintaxis actualizada que intentaste, encerraste cada parámetro entre doble llaves, lo que creó un diccionario para cada parámetro. Sin embargo, el mensaje de error que recibiste después (Invalid value for portRange. Must specify both from and to ports with TCP/UDP.) se debe a que no especificaste los valores FromPort y ToPort como parámetros separados.

    El trabajo sugerido por John Rotenstein es crear una nueva regla de grupo de seguridad cada vez en lugar de modificar una existente. Esto implica revocar la regla anterior y guardar su ID, luego autorizar una nueva regla con los mismos parámetros que antes. Este enfoque evita los errores causados por la modificación de una regla existente.

Comments are closed.