Обновите политику s3 - PullRequest
       1

Обновите политику s3

0 голосов
/ 19 марта 2020

Я пытаюсь обновить политику корзины s3 новыми IP-адресами. Я хочу nslookup домен, а затем применить эти IP-адреса к политике s3 в aws: SourceIP. И напоследок, это мой первый родео ....

 import subprocess
import boto3
from awspolicy import BucketPolicy


process = subprocess.Popen(["nslookup", "domain"], stdout=subprocess.PIPE, encoding='utf8')
output = process.communicate()[0].split('\n')

ip_arr = []
for data in output:
    if 'Address' in data:
        ip_arr.append(data.replace('Address: ',''))
ip_arr.pop(0)

s3_client = boto3.client('s3')
bucket_name = 'testwhitelist'

# Load the bucket policy as an object
bucket_policy = BucketPolicy(serviceModule=s3_client, resourceIdentifer=bucket_name)

# Select the statement that will be modified
statement_to_modify = bucket_policy.select_statement('IPAllow')

# Insert new_user_arn into the list of Principal['AWS']
ip_address = ip_arr
statement_to_modify.Condition['IpAddress'].append(ip_address)

# Save change of the statement
statement_to_modify.save()

# Save change of the policy. This will update the bucket policy
statement_to_modify.source_policy.save() # Or bucket_policy.save()

Когда я запускаю эту команду, я получаю эту ошибку:

Statement_to_modify.Condition ['IpAddress']. append (ip_address) AttributeError: у объекта 'dict' нет атрибута 'append'

Я понимаю, что это значит, но я не знаю, как это исправить. Пожалуйста и спасибо за вашу помощь !!! Я открыт для публичной c критики ....

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