Skip to content

(ecs-patterns): allow specifying IAM-role for EcsTask through ScheduledFargateTask #22673

@hannseman

Description

@hannseman

Describe the feature

Allow passing a IAM Role to ScheduledFargateTask which in turn is passed as the role argument to EcsTask.

Use Case

The default IAM role created in EcsTask gets a policy for ecs:RunTask with the full task definition arn as the resource, that is with its revision. I want to be able to set a ecs:RunTask policy with a wild card as the task definition revision component, i.e instead of:

PolicyStatement(
    actions=["ecs:RunTask"],
    resource=["arn:aws:ecs:XX:XX:task-definition/some-task-definition:42"],
    ...
)

I want:

PolicyStatement(
    actions=["ecs:RunTask"],
    resource=["arn:aws:ecs:XX:XX:task-definition/some-task-definition:*"],
    ...
)

See:

const policyStatements = [new iam.PolicyStatement({
actions: ['ecs:RunTask'],
resources: [this.taskDefinition.taskDefinitionArn],
conditions: {
ArnEquals: { 'ecs:cluster': this.cluster.clusterArn },
},
})];

Proposed Solution

My proposal is to leverage the already existing role argument on EcsTask by simply adding the same argument to ScheduledFargateTask and passing it on through.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

CDK version used

2.44

Environment details (OS name and version, etc.)

MacOS 12.6.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    @aws-cdk/aws-ecs-patternsRelated to ecs-patterns libraryeffort/smallSmall work item – less than a day of effortfeature-requestA feature should be added or improved.good first issueRelated to contributions. See CONTRIBUTING.mdp2

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions