1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon QにIAMユーザー作成のCFnテンプレート書かせてみた

Last updated at Posted at 2024-11-02

はじめに

今回はテスト用にAdmin権限を持ったIAMグループとIAMユーザーのCFNテンプレートを、動作検証がてらAmazonQに書かせてみました。
AmazonQで書かせたものをAWS公式の構文とVScode拡張機能のcfn-lintで訂正しながらやりました。

AmazonQについて

  • AWS版のChatGPTみたいなもの
  • VScodeの拡張機能でAmazonQが利用可能

作成したいリソース

  • IAMグループ
  • Admin権限を持ったIAMユーザー
    →IAMグループにAdmin権限を付与

使い方

  • エディタで作成したいリソース(IAM user)を指定すると予測が出てくるのでtabキーで確定させる
  • alt + cで再予測させる
    スクリーンショット 2024-11-01 102718.png
    スクリーンショット 2024-11-01 182708.png

修正した点

cfn-lintとテンプレート検証で確認したところ、依存循環のエラーが発生した。

Circular dependency between resources: [AdminGroup, AdminUser]

IAMグループとIAMユーザーの両方向で!Ref組込関数を使用していたことが原因で、結局参照先をうまく指定してくれなかった。

完成したテンプレート

AWSTemplateFormatVersion: 2010-09-09
Description: Admin User

Parameters:
  AdminUserGroup:
    Type: String
    Default: AdminGroup
    Description: AdminUserGroupName
  AdminUserName:
    Type: String
    Default: AdminUser
    Description: AdminUserName  
  Password:
    Type: String
    Default: Passwordxxx
    Description: Passwordxxx
    NoEcho: true  

Resources:
  AdminGroup:
    Type: AWS::IAM::Group
    Properties: 
      GroupName: AdminGroup
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AdministratorAccess
  
  AdminUser:
    Type: AWS::IAM::User
    Properties: 
      Groups:
        - !Ref AdminGroup
      UserName: AdminUserName
      LoginProfile:
        Password: Passwordxxx
        PasswordResetRequired: true
      
Outputs:
  UserName:
    Description: UserName
    Value: !Join [",",[Ref AdminUserName]]
  LoginURL:
    Description: LoginURL
    Value: !Join [",",[https://, !Ref AWS::AccountId, .signin.aws.amazon.com/console]]

確認

  • スタック作成
    スクリーンショット 2024-11-02 074723.png

  • IAMグループとIAMユーザーが作成されている
    スクリーンショット 2024-11-02 124242.png

  • Outputsで指定したログインURLが出力されている
    スクリーンショット 2024-11-02 080914.png

参考文献

AWS Identity and Access Management resource type reference
Amazon Qを使用してAWS CloudFormationのテンプレートを作成してみた

最後に

慣れていない人からすると手書きよりも早い。
VScodeの拡張機能で使えるのでlinterとの併用が可能。間違いがすぐわかる。
細かい指示を伝達させるのが難しいので、構文の大まかな部分は任せて各要件は手動で入れていくのが良さそう。サポートとして考えるならgood。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?