- Newest
- Most votes
- Most comments
Well it appears the :* suffix is necessary. Or at least for some actions. Yesterday a user reported he couldn't access the log groups' streams on AWS web console.
User: arn:aws:iam::ACCOUNT:user/USERNAME is not authorized to perform: logs:DescribeLogStreams on resource: arn:aws:logs:REGION:ACCOUNT:log-group:App/error-logs/dev:log-stream:
Applying :* lets him navigate to the streams.
Hi IceLava, The logs API does return the asterisk on the end of the resource ARN for log-groups. For IAM policies, however, you should match as if the ARN didn't have the asterisk at the end of the resource ARN. For example, the following policy would match a log group named 'orange':
{
"Sid": "OrangeLogGroup",
"Effect": "Allow",
"Action": "logs:DescribeLogGroups",
"Resource": "arn:aws:logs:REGION:ACCOUNT:log-group:orang?"
}
The '?' only matches one character and matches with the 'e' in the name. If the wildcard were part of the ARN, this policy wouldn't match. The Service Description File validates this:
"ARN": "arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}"
I agree that the Visual Editor in IAM seems to struggling with this resource type. You may have to rely on the JSON editor while we get this addressed.
Thanks for pointing this inconsistency out.
Hi mattcarter, i am not sure how a single-char ? placeholder will prove useful in practical real-world scenarios. If an app uses a collection of log groups, it's extremely unlikely all log group names are of the same exact length.
Relevant content
- asked 4 years ago

Hi IceLava, I was only using the '?' to show the matching of the log-group ARN to end in "orange", not "orange*". Apologies if I communicated it as a recommendation for helping in this use case.
Using the '*' in IAM Policy matches against anything as a wildcard, not a literal match with the asterisk. You can test logs:DescribeLogStreams action as I did using the following policy to constrain the action to a log streams in a single group. It will match without the asterisk.
Hi mattcarter, as per my supplementary comment, the :* suffix is required for the policy statement to apply to all log streams in the log group, otherwise my developers couldn't list/describe them in the web console.
arn:aws:logs:us-east-2:111122223333:log-group:<group-name>:log-stream:*