CLI&コンソール作業用のAWS IAMユーザーを作成する

## 概要
- AWS LambdaとDynamoDBを使ってLINE Botを作ったので、その備忘録の1つです。
- この記事では、関連作業に必要なIAMユーザーを作成する手順を説明します。

## 作成するIAM
- 2つ作成します
- 1つ目: CLI操作用
    - 今回は `dev_cli` の名称にします。
- 2つ目: マネジメントコンソール操作用
    - 今回は `dev_console` の名称にします。

## 環境
macOS: 13.5.1
Homebrew: 4.1.4
Node.js: v18.14.1
aws-cli: aws-cli/2.13.7 Python/3.11.4 Darwin/22.6.0 source/arm64 prompt/off


## 前提条件
- [Node.js](https://nodejs.org/ja/)のダウンロード・インストール済み
- [AWS CLI](https://aws.amazon.com/jp/cli/)のダウンロード・インストール済み
- 新規IAMユーザーを作成できる権限のIAMユーザーを持っていること
    - 持っていない場合は作成するか、ルートユーザーを使う方法でも構いません。
    

## IAMユーザーの作成
- IAMユーザーを作成できるアカウントでAWSへログインする。
- IAM -> ユーザー -> ユーザーの作成 をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/c116e6e3-3821-b564-cb57-2d3e26ad8eca.png)


### CLI操作用 `dev_cli` の場合
- 大まかな流れは以下の通り。
    1. ユーザー作成
    1. アクセスキー作成
    1. インラインポリシー作成
- 以下は、詳細のやり方です。

- ユーザー名を入力し、次へをクリック   

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/877bece6-f71d-b58f-e9f3-6578aad72a4e.png)

- 許可を設定　にて、何も選択せず　次へ　をクリック
    - 必要なインラインポリシーなどの設定は後でやります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/b528e0d1-b410-6335-1b06-e5f2ab83f961.png)

- ユーザーの作成　をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/4fae050c-522b-7074-4c5f-b12624230831.png)

- ユーザーが作成されるので、ユーザー名をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/4ceac4c8-26b4-c571-80e0-2b13e069898d.png)

- アクセスキーを作成　をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/f97b901a-2598-7bc7-2480-ab47fb1e2db8.png)

- ユースケースの中から『コマンドラインインターフェイス (CLI)』を選択し、チェックボックスを選択し、次へをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/16fd2fe4-6b60-641d-6bcd-c6db94d8bf05.png)

- アクセスキーを作成　をクリック。
    - 説明タグは任意なので、空欄でOK。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/45f33e68-489a-cd4f-ab68-b0be32b36ca3.png)

- アクセスキーが作成されます。（アクセスキー、シークレットアクセスキーです。）
    - ここの画面を抜けると2度と確認できないので、忘れずにメモすること。
    - csvファイルをダウンロードするのをおすすめします。
    - 最後に　完了　をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/274762da-08aa-b8c1-8a61-187eed839b96.png)

- 次にインラインポリシーを作成します。
- 許可 -> 許可ポリシー -> 許可を追加 -> インラインポリシーを作成 をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/f152b53d-8620-7e9d-6eb9-90f3a8118b0b.png)

- Lmabdaを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/7187e2ea-af7e-03e5-285e-8ae28c8e58f4.png)

- 以下のアクション許可を追加
    - 読み取り -> GetFunction
    - 書き込み -> UpdateFunctionCode, UpdateFunctionConfiguration
- リソース -> 特定 -> 『このアカウント内のいずれか』をチェック
- 次へ を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/d170fb01-0da5-af13-d6de-501d11b2f291.png)

- 任意のポリシー名を入力し、『ポリシーの作成』をクリック
    - 今回は `dev_cli_inline_policy` とします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/2c043fe1-aca5-0410-3fc5-b3b48cb7ab98.png)

- 作成したインラインポリシーがアタッチされていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/4a7308c0-12c5-658d-7e48-13d7700781bf.png)

- これで `dev_cli` のIAMユーザーの作成完了です。
-　次は `dev_dev_console` を作成します。 

### コンソール操作用 `dev_console` の場合
- 大まかな流れは、上記で説明した `dev_cli` の作成の流れとほぼ同じです。
- 異なる点は以下の通り
    1. アクセスキーの作成は不要
    1. マネジメントコンソールからのアクセスを許可すること
- 以下、詳細を説明します。（同じ内容の箇所は説明を省きます）
- `dev_console` のユーザーを作成する
    - 『AWS マネジメントコンソールへのユーザーアクセスを提供する』にチェックします。
    - ユーザータイプ -> 『IAM ユーザーを作成します』をチェック
        - 推奨はIdentity Centerですが、今回はIAMユーザー作成の方法を取ります。
    - コンソールパスワード
        - ここはお好みの設定を選択してOK。今回は以下の通りです。
        - 『自動生成されたパスワード』　を選択
        - 『ユーザーは次回のサインイン時に新しいパスワードを作成する必要があります - 推奨』をチェック
    - 『次へ』をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/01900574-5ea1-7997-3864-ade555d5a34a.png)

- ユーザーを作成し、パスワードのcsvをダウンロードします。
    - コンソールへログインする際に、パスワードを使用します。
- 次に、許可ポリシーをアタッチします。
    - ユーザー -> dev_console -> 許可 -> 許可を追加 -> 許可を追加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/0b855e1d-bab1-1141-38f6-23c8c26333f9.png)

- ポリシーを直接アタッチする
    - 以下の4つを検索してレ点チェックし、次へをクリック。
        - AWSLambda_FullAccess
        - AmazonAPIGatewayAdministrator
        - AmazonCognitoPowerUser
        - AWSCertificateManagerFullAccess

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/c77c8fdc-2197-661f-e7d2-9f9dadef4772.png)

- 選択したポリシーの内容が正しいことを確認して、『許可を追加』をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834744/f1738eb6-365c-2bbe-3c53-0936d82a9bea.png)

- 以上で、IAMユーザーの作成は完了です。