AWSでIAMロールを作成しようとしていますが、作成中にエラーに直面しています
「リクエストの処理中に次のエラーが発生しました。ロールに権限を添付する際に問題が発生しました。ロールは権限なしで作成されます。ポリシーはレガシー解析に失敗しました」
{"Version": "2012-10-17", "Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Action": [
"sqs:SendMessage",
"sqs:GetQueueUrl"
],
"Effect": "Allow",
"Resource": "arn:aws:sqs:ap-northeast-1:SOME_ID_HERE:test-messages"
}]}
私はこのエラーを受け取りましたが、理解できませんでした。同僚と私はそれを注いだ後、Fn::Sub
なしで置換変数を残したことを発見しました。
"Resource": "arn:aws:logs::${AWS::AccountId}:*
このエラーが発生します。もちろん
"Resource": { "Fn::Sub": "arn:aws:logs::${AWS::AccountId}:*" }
ところで、私の経験では、私はE.Jに同意します上記のBrennanでは、地域にワイルドカードを使用することはできません。代わりに、私が行ったように空白のままにします。
今日見つけた楽しい新しいエラー状態:
次の場合:
Default
propを使用してアカウントIDを提供します0
で始まりますCFNは実際にパラメーターを整数として読み取ります(9.3476294382E10のようにキャストします)-パラメーターにType: String
があるかどうかに関係なく、または!!str
を使用して明示的にキャストします。
そのため、解決策は、Default: "093476294382"
を使用する代わりに、デプロイメントにパラメーターを手動で提供することです。
誰か他の人を救うことを願っています。
S3で失敗した場合は、正しいarn形式を使用していることを確認してください。
正しいものは3です:::arn:aws:s3 ::: AccountABucketName
「リソース」:「arn:aws:s3 ::: AccountABucketName」
間違った1 2 ::arn:aws:s3 :: AccountABucketName
「リソース」:「arn:aws:s3 :: AccountABucketName」
発生する可能性のある問題の1つは、ロググループとログストリームの間に余分なものがあるため、クラウドウォッチログARNSに6つのシンボルがある場合があることです。例えば:
"Resource": "arn:aws:logs:us-west-2:123456789012:/my/log/group:log-stream"
またはあなたの場合:
"Resource": "arn:aws:logs:*:*:*:*
6番目の:が追加されていない場合、上記のより具体的な例などのいくつかのARNSでこのエラーが発生することがわかりました。これはドキュメント(E.Jが提供するドキュメントを含む)と矛盾することを理解しているため、AWS内のどこかのバグである可能性があります
http://docs.aws.Amazon.com/AmazonCloudWatch/latest/logs/iam-identity-based-access-control-cwl.html
Arnの領域をワイルドカード化できるとは思わないので、代わりに次のようなものが必要になる場合があります。
arn:aws:logs:us-east-1:*:*
、us-east-1の代わりに使用している地域を指定します。
詳細はこちら:
http://docs.aws.Amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-cloudwatch-logs
できると思う
"Resource": "arn:aws:logs:us-west-2:123456789012:*"
そうでない場合は、マッピングを使用してアカウントを地域にマッピングできます。
"mAWSRegionToAccountsMap": {
"us-west-2": {
"prod": "444444444673",
"dev": "678333333333"
},
"us-gov-west-1": {
"dev": "12345678903",
"prod": "234345345345"
}
}
次に、区切り文字に「:」を使用して、マッピングを結合に統合します
"Resource": {
"Fn::Join": [
":",
[
"arn:aws:logs",
{
"Ref": "AWS::Region"
},
{
"Fn::FindInMap": [
"mAWSRegionToAccountsMap", {
"Ref": "AWS::Region"
},
"prod"
]
},
"/*"
]
]
}
エンディングを微調整する必要があるかもしれません