Как узнать, действителен номер учетной записи AWS или нет? - PullRequest
0 голосов
/ 09 апреля 2020

Попытка программного обновления политики bucket. * * * * * Раздел политики сегмента Principal является несколькими ARN. Подозреваю, что некоторые из account numbers в Principal недействительны. Ошибка ниже при запуске кода. Как узнать неверный AWS Account numbers?

Усеченный 'Principal' контент, который необходимо добавить:

"Principal": {
                "AWS": [
                    "arn:aws:iam::AWSacnt1:role/sampleRole",
                    "arn:aws:iam::AWSacnt2:role/sampleRole",
                    "arn:aws:iam::AWSacnt3:role/sampleRole",
                    "arn:aws:iam::AWSacnt4:role/sampleRole",
                    "arn:aws:iam::AWSacnt5:role/sampleRole",
                    "arn:aws:iam::AWSacnt6:role/sampleRole",
                    "arn:aws:iam::AWSacnt7:role/sampleRole",
                    "arn:aws:iam::AWSacnt8:role/sampleRole",
                    "arn:aws:iam::AWSacnt9:role/sampleRole",
                    "arn:aws:iam::AWSacnt10:role/sampleRole",
                    "arn:aws:iam::AWSacnt11:role/sampleRole",
                    "arn:aws:iam::AWSacnt12:role/sampleRole",
                    "arn:aws:iam::AWSacnt13:role/sampleRole",
                    "arn:aws:iam::AWSacnt14:role/sampleRole"
                ]
            }

Код:

s3 = boto3.resource('s3')
p = s3.BucketPolicy('s3bucket')
j = json.loads(p.policy)
l = j['Statement'][0]['Principal']

##Did some processing ###

j['Statement'][0]['Principal'] = { 'AWS': newl }

try:
    p.put(Policy=js)
except ClientError as ce:
    print "ce: %s" %ce
    raise

Ошибка:

An error occurred (MalformedPolicy) when calling the PutBucketPolicy operation: Invalid principal in policy: ClientError

...