📒
AWS CDKのApplicationLoadBalancedFargateServiceのタスクにgrantしたい!
はじめに
AWS CDKにはL3コンストラクタとしてECSやALBなどをもろもろを構築できるaws-cdk-lib.aws_ecs_patterns moduleがあります。
作成されるタスクロールにS3バケット等へのアクセス権限を付けたい場合にgrantで権限を付与したい場合がよくあるのですが、毎回なんだっけ?となるのでメモ
やり方
ここではApplicationLoadBalancedFargateService
で行いますが、他のecs-patternでも流用できると思います。
const vpc = new ec2.Vpc(this, 'Vpc');
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
const pattern = new ecs_patterns.ApplicationLoadBalancedFargateService(this, "FargateService", {
cluster,
taskImageOptions: {
image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample"),
},
});
const bucket = new s3.Bucket(this, 'Bucket');
// 権限の付与
bucket.grantReadWrite(pattern.service.taskDefinition.taskRole);
これでpattern.service
でできないのか~って毎回勘違いが発生してたのが防げる。
Discussion