😽

初心者がAWS CDKを触ってみた【IAM編】

2024/08/03に公開

はじめに

勉強のためAWS CDKを使ってIAM周りのリソースを作成してみました。
CloudFormationと比べてどのくらいコンパクトになるかみてみたいと思います。
ちなみに事前検証等していないので本記事を書きながらリアタイで勉強しています。

先に結論

苦戦しすぎてIAMユーザー+IAMグループを作成するところで疲れてしまいました笑
すごいシンプルに記述したので初心者には読みやすいのではないかと思います。

環境

  • Mac
  • Vscode
  • AmazonQ (TypeScript初心者のためGitHubCopilotのように使ってます)

まずはIAMユーザーから作成してみます

lib/ianm-stack.ts
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as iam from 'aws-cdk-lib/aws-iam'

export class IamStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const username = "tshimoda"

    //iam user
    const user = new iam.User(this, 'user', {
      userName: username
    });
  }
}


できました

次にIAMユーザー+IAMグループ

lib/ianm-stack.ts
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as iam from 'aws-cdk-lib/aws-iam'

export class IamStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const username = "tshimoda"
    const groupname = "cdk-group"

    //iam user
    const user = new iam.User(this, 'user', {
      userName: username
    });

    //iam group
    const group = new iam.Group(this, 'group',{
      groupName: groupname
    });

    //add user in group
    group.addUser(user)
  }
}


できました。
(プログラミングの知識が浅すぎてドキュメント読んでもわからなくて苦戦しました。)

参考

https://catalog.workshops.aws/typescript-and-cdk-for-beginner/ja-JP/20-typescript-basic
https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Group.html

おわりに

TypeScriptの基礎を復習しながら次はポリシーとロールに挑戦しようと思います。

GitHubで編集を提案

Discussion