Попытка программного обновления политики 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