[AWS #6] IAM

## ■はじめに
こんにちは
沢山あるAWSのサービス名とその仕組みを覚えるのに精一杯の者です。

今回は **「IAM」** についてご紹介いたします。
:rolling_eyes:ん？「I am」？
:upside_down:「私は」ではないです。私も最初そう思いましたが…
## ■ IAM
「IAM」とは **Identity and Access Managementの略称**です。
<font color=red>**AWSリソースへのアクセスを安全に管理するためのWebサービス**</font>です。

IAMでは、以下の機能が用意されています。
**・「IAMユーザー（グループ）」**
**・「IAMポリシー」**
**・「IAMロール」**

その中でも…
「IAMユーザー（グループ）」
これを使用することで、ユーザーの**AWSリソースに対するアクセスなどの権限を制御**することができます。

「IAMロール」
これを使用することで**AWSリソースに権限を付与、ユーザーに一時的な権限を付与**することができます。

:::note info
AWSアカウントで<font color=red>**誰が何（認証・認可）を実行できるか**</font>を定義します
:::
:::note info
・**認証**→相手が**誰（何）なのかを確認すること**
・**認可**→リソースへの**アクセス権限を与えること**
:::
ざっくりとユーザーとAWSリソースに分けるとこのようになります。
![AWS06_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806875/f820b584-ae9c-74a0-878f-6443e4d3f724.png)

### ▶IAMユーザー
**AWSを利用するアカウントのことを指します**
![images.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806875/66e5e3ee-cc11-4bbc-a178-fe02dc187475.png)
こちらの画像のように、AWSにアクセスして
「アカウントIDまたはアカウントエイリアス」
「ユーザー名」
「パスワード」を入力することでログインすることができます。

ここで注意点です。

:::note warn
利用者ごとに作成して**複数人で使い回してはいけない**
:::
これは複数人で同じIAMユーザーを使い回してしまうと**操作によるトラブルが起きた場合、誰が何の操作をしたか分からないからです。**

またIAMユーザーは**デフォルトの状態**では**アクセス権限を持っていない**ため、**何も操作ができません。**

:::note info
IAMポリシーを使用してIAMユーザーに**必要なAWSリソースへのアクセス権限を付与する**ようにします。
:::
### ▶IAMポリシー
**「誰・何に対して」「どのような操作を」「許可・拒否するか」を示したものです。**
IAMポリシーをIAMユーザーやIAMロールに割り当てることで、AWSリソースへのアクセスを安全に管理することができます。（↓イメージ図）
![AWS06_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806875/e7d7b248-c23a-6cb5-5799-b7cff86365ed.png)
しかし沢山権限を付与するとユーザーが予期せぬ作業をする可能性があり、セキュリティの観点で見ると望ましくないです。

:::note warn
IAMポリシーで付与する権限は、**必要最低限にしましょう**
:::

---
また、IAMポリシーで許可と拒否の権限が付与された場合に、**「拒否」が優先**されます
![AWS06_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806875/cad08df0-a7a2-86ec-7d01-b1d9eb0eda1a.png)
### ▶IAMグループ
IAMユーザーとIAMポリシーを使用して、ユーザーのAWSリソースに対するアクセス管理はできますが、**ユーザー数が増加するとその分権限管理をしなくてはなりません。**（とても面倒だと思います）

そんな時にIAMグループを使用することで**複数のIAMユーザーをまとめて管理する**ことができます。
![AWS06_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806875/019ba1c9-e942-7ddb-f07d-b896c8fc53cd.png)
IAMグループに対してIAMポリシーを付与することで、グループ内のIAMユーザーに**一括で権限の付与、変更**することができます。

:::note info
会社などで、部署やチームごとにIAMユーザの権限を分けたい場合などに利用するのが有効でしょう。
:::

### ▶IAMロール
ユーザーやグループではなく、**EC2やLambda、RDSなどに対して権限を付与**するものです。

イメージ図です。一例ですが、EC2にRDSへの操作を行うアプリケーションを導入する場合、EC2にRDSへのアクセス権限を記載したIAMロールをアタッチします。
![AWS06_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806875/bcff40b9-ef56-d9d3-6e58-7eae5e903889.png)

---
ちょっとしたまとめになります。

:::note info
IAMとは、**AWSリソースへのアクセスを安全に管理する**ためのサービスである
:::
:::note info
IAMユーザーとは、**AWSを利用するアカウント**
:::
:::note info
IAMポリシーとは、**「何に対して」「どのような操作を」「許可・拒否するか」を示したもの**
:::
:::note info
IAMグループは、複数のIAMユーザーを**グループとして管理する**ことができるもの
:::
:::note info
IAMロールとは、**AWSリソースのアクセスを管理するもの**
:::
---
## ■おわりに
IAMはAWSのサービスを操作するための、**「認可」と「認証」を行うとても重要なサービスです。** IAMユーザやIAMロールを正しく組み合わせて利用することでより安全にAWSを利用することができます。

参考元の記事です。
▶[AWS IAMとは？](https://www.wafcharm.com/jp/blog/aws-iam-for-beginners/)

最後までお読みいただきありがとうございました！

>日頃より活用している参考書です。
>> **「参考書」**
[AWS認定クラウドプラクティショナー改定第3版](https://x.gd/19i6N)
>
>> **「AWS公式サイト」**
>>[IAM](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html)
>
>短い動画で資格学習に活用できます。
> **「Youtube」**
[【CLF-C02：AWSクラウドプラクティショナー】第11回 AWS IAM (セキュリティとコンプライアンス分野)](https://x.gd/eCAbv)