Создайте AWS SG, используя python boto3 - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь создать группу безопасности в конкретном vpc, передавая переменные во время выполнения кода, но я получаю следующие ошибки, когда запускаю следующую команду с переменными.

./create_sg.py vpc-e79569b2 dev_test_sg testing tcp 22 22 0.0.0.0/0

Произошла ошибка (InvalidVpcID.NotFound) при вызове операции CreateSecurityGroup: идентификатор vpc 'VPC_ID' не существует

    #!/usr/bin/env python

import sys
import boto3
from botocore.exceptions import ClientError
region = "us-west-1"

VPC_ID=sys.argv[0]
SECURITY_GROUP_NAME=sys.argv[1]
DESCRIPTION=sys.argv[2]
IP_PROTOCOL_1=sys.argv[3]
FROM_PORT_1=sys.argv[4]
TO_PORT_1=sys.argv[5]
CIDR_IP_1=sys.argv[6]


ec2 = boto3.client('ec2')

response = ec2.describe_vpcs()

vpc_id = 'VPC_ID'

try:
    response = ec2.create_security_group(GroupName='SECURITY_GROUP_NAME',Description='DESCRIPTION',VpcId=vpc_id)
    security_group_id = response['GroupId']
    print('Security Group Created %s in vpc %s.' % (security_group_id, vpc_id))

    data = ec2.authorize_security_group_ingress(
        GroupId=security_group_id,
        IpPermissions=[
            {'IpProtocol': 'IP_PROTOCOL_1',
             'FromPort': FROM_PORT_1,
             'ToPort': TO_PORT_1,
             'IpRanges': [{'CidrIp': 'CIDR_IP_1'}]}
        ])
    print('Ingress Successfully Set %s' % data)
except ClientError as e:
    print(e)

Пожалуйста, просмотрите код и дайте мне знать, если мне нужно что-то изменить там, чтобы успешно создать группу безопасности.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Эта строка неверна ...

response = ec2.create_security_group(GroupName='SECURITY_GROUP_NAME',Description='DESCRIPTION',VpcId=vpc_id)

ИМО должно быть:

response = ec2.create_security_group(GroupName=SECURITY_GROUP_NAME,Description=DESCRIPTION,VpcId=VPC_ID)


Хорошо, вот полный код с исправлениями, внесенными в строковые литералы:

#!/usr/bin/env python

import sys
import boto3
from botocore.exceptions import ClientError
region = "us-west-1"

VPC_ID=sys.argv[0]
SECURITY_GROUP_NAME=sys.argv[1]
DESCRIPTION=sys.argv[2]
IP_PROTOCOL_1=sys.argv[3]
FROM_PORT_1=sys.argv[4]
TO_PORT_1=sys.argv[5]
CIDR_IP_1=sys.argv[6]

ec2 = boto3.client('ec2')

response = ec2.describe_vpcs()

try:
    response = ec2.create_security_group(GroupName=SECURITY_GROUP_NAME,Description=DESCRIPTION,VpcId=VPC_ID)
    security_group_id = response['GroupId']
    print('Security Group Created %s in vpc %s.' % (security_group_id, VPC_ID))

    data = ec2.authorize_security_group_ingress(
        GroupId=security_group_id,
        IpPermissions=[
            {'IpProtocol': IP_PROTOCOL_1,
             'FromPort': int(FROM_PORT_1),
             'ToPort': int(TO_PORT_1),
             'IpRanges': [{'CidrIp': CIDR_IP_1}]}
        ])
    print('Ingress Successfully Set %s' % data)
except ClientError as e:
    print(e)
0 голосов
/ 29 июня 2018

Попробуйте удалить кавычки вокруг 'VPC_ID':

vpc_id = VPC_ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...