我正在研究一个bash脚本,它将创建s3存储桶,创建IAM用户,创建并应用用户策略以及创建和应用存储桶策略。
但是,当我尝试创建存储桶策略时,它会输出错误-“策略中的主体无效”
当前,我在同一个目录中托管一个空的json文件,并使用Heredoc构建文本并将其推入其中。
arnFull=$arnPath$nuNm
block=$(cat <<ADDTEXT
{
"Version": "2012-10-17",
"Id": "$IdStr",
"Statement": [
{
"Sid": "$sidStr3",
"Effect": "Allow",
"Principal": {
"AWS": "$arnFull"
},
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions",
"s3:GetBucketLocation",
"s3:Get*",
"s3:Put*"
],
"Resource": "arn:aws:s3::886211781477:$dest"
}
]
}
ADDTEXT
)
此脚本中还引用了其他变量(例如$ dest,$ sidStr3),但它们都已被考虑并且在语法上是正确的。另外,我将$ arnFull变量与新创建的用户的Arn进行了比较,在管理控制台上它们在视觉上确实相同。