【AWS】IAM ~ 基本編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2017/02/26/231046

の続き。

IAM について、もう少し掘り下げる。

目次

【1】IAM
 1)認証 (Authentication)
 2)認可 (Authorization)
【2】IAMユーザ・グループ
 1)認証種類
 2)MFA設定手順
【3】IAM Policy(ポリシー)
【4】IAM role
 1)ロールを切り替えるのは
【5】Billing and Cost Management コンソールの閲覧許可する

【1】IAM

* AWS操作をより安全に行うための認証・認可の仕組み

1)認証 (Authentication)

* アクセスしたユーザに対して、
 その人本人であるかの確認を取ること

* ユーザID/パスワード

2)認可 (Authorization)

* 「認証」したユーザが何をしていいかを許可すること

* アクセス制御機能

【2】IAMユーザ・グループ

* 『認証』の部分

1)認証種類

* 以下の2種類
~~~~~~~
[1] ユーザーIDとパスワード
[2] アクセスキーとシークレットアクセスキー
~~~~~~~

[1] ユーザーIDとパスワード

* Webコンソールでアクセスする際に使用
* MFAと組み合わせも可能(後述「2)MFA設定手順」参照)

[2] アクセスキーとシークレットアクセスキー

* CLIやAPIからAWSリソースにアクセスする際に使用

2)MFA設定手順

 * 以下の関連記事を参照

IAM ~ 多要素認証(MFA)の設定 ~
https://dk521123.hatenablog.com/entry/2020/12/09/150822

 【3】IAM Policy(ポリシー)

http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies.html

* アクセス制御
 => AWSユーザに対して、AWS サービス を実行権限をコントロールできる
* 『認可』の部分
* 詳細は、以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2020/09/30/133123
基本的な運用方法

* IAMグループごと又はIAMロールごとに、
 ポリシーを付与するようにする

【4】IAM role

導入

* IAMユーザに対して、IAMポリシーを直接アタッチできるが
 EC2などのAWSサービスに対しては、直接アタッチはできない
 => EC2などのAWSサービスに対しては、IAMロールを割り当てる

IAMロールとは?

* 一時的にAWSリソースへのアクセス権限を付与する場合などに使用
 => この『一時的に』がポイント。
~~~~~
 [1] AWSリソースへの権限付与
 [2] クロスアカウントアクセス
 [3] IDフェデレーション
 => Active Directoryでアクセス
 [4] Web ID フェデレーション
 => GoogleやFacebookアカウントでアクセス
~~~~~

補足:IDフェデレーション

* 以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2022/10/18/185246

1)ロールを切り替えるのは

* 1ユーザには複数のロールを設定することができ、
   ログインした際に切り替えることできる

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_switch-role-console.html
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html
手順

[1] [IAM]-[ロール] を選択
[2] 対象のロールを選択する
[3] コンソールで [ロールの切り替える]リンクを押下 

【5】Billing and Cost Management コンソールの閲覧許可する

* IAMユーザでの Billing and Cost Management コンソールの
 閲覧許可する方法を記載する。

 現象

 * IAM ユーザ/AdministratorAccess 管理ポリシーで、
   Billing and Cost Management コンソールへのアクセスしても権限で怒られる

 原因

 * Billing and Cost Management コンソールへのアクセスを
 アクティベートする必要がある

 対応方法
http://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/grantaccess.html

に記載されている 

[1] ルートアカウント認証情報 (AWS アカウントの作成に
 使用した E メール アドレスとパスワード) で 
    AWS マネジメントコンソール にサインイン
[2] ナビゲーションバーでアカウント名を選択してから、[アカウント] を選択
[3] [IAM User Access to Billing Information] の横で、[編集] を選択
[4] [Activate IAM Access] チェックボックスをオンにする
[5] ログオフして、IAMユーザでログインし直して、
    Billing and Cost Management コンソールにアクセスできるか確認する

 関連記事

IAM ~ IAM Policy 編 ~
https://dk521123.hatenablog.com/entry/2020/09/30/133123
IAM ~ アクセスキー ~
https://dk521123.hatenablog.com/entry/2023/02/02/091544
IAM ~ クロスアカウント ~
https://dk521123.hatenablog.com/entry/2022/05/23/000000
IAM ~ Service-Linked Roles ~
https://dk521123.hatenablog.com/entry/2023/01/22/000000
AWS CLIaws sts
https://dk521123.hatenablog.com/entry/2023/04/09/104204
IAM ~ 多要素認証(MFA)の設定 ~
https://dk521123.hatenablog.com/entry/2020/12/09/150822
IDフェデレーション
https://dk521123.hatenablog.com/entry/2022/10/18/185246