Como verificar via aws cli se uma descrição de um grupo de segurança contém uma string específica?

Como verificar via aws cli se uma descrição de um grupo de segurança contém uma string específica?

Usando o aws cli, gostaria de poder fazer uma pesquisa difusa de uma parte de uma string na 'descrição' de um grupo de segurança.

Por exemplo, digamos Grupo de Segurançasd-afafaf00contém "Olá, Kaipee" no campo Descrição.

O seguinte funciona, mas apenas para uma correspondência completa, não parcial

aws ec2 describe-security-groups --query "SecurityGroups[?IpPermissions[?contains(IpRanges[].Description, 'Hey there kaipee')]]"

Gostaria de poder exibir todos os grupos de segurança que contenham 'kaipee' na descrição, como:

aws ec2 describe-security-groups --query "SecurityGroups[?IpPermissions[?contains(IpRanges[].Description, 'kaipee')]]"

EDIT: preciso retornar o GroupId, CirdIp e os detalhes do campo Descrição, que correspondem aos resultados da string consultada.

Responder1

Você se importa em usar jq?

jq '.[][].IpPermissions[].IpRanges[] | select(.Description) | select(.Description | contains("kaipee"))'

Responder2

Você já tentou usar uma consulta JMESPath para filtrar o SG que está procurando. Fiz alguns testes sozinho e não consigo encontrar o caminho para containso trabalho, mas acho que >parece funcionar mesmo quando a string de pesquisa não está no início da descrição.

aws ec2 describe-security-groups --query "SecurityGroups[?Description > 'kaipee'].{Description: Description, GroupId: GroupId, IpRanges: IpPermissions[].IpRanges}"

Espero que ajude.

informação relacionada