0
0

More than 1 year has passed since last update.

AWS初心者は必ず読むべき!必見!AWSの基本⑪IAMでアクセス権限管理

Last updated at Posted at 2022-10-15

この記事の概要

インフラの運用において情報が安全に守られているかを確認するセキュリティを扱います。

IAMとは

AWSを利用するユーザーの権限を管理するサービスです。

⚫︎ポリシー
アクセス許可のことで、どのサービスの、どのリソースに、どんな操作するか

⚫︎ユーザー
個々のアカウントのユーザー

⚫︎グループ
IAMユーザーの集合

⚫︎ロール
一時的にアクセスを許可したアカウントが発行でき、EC2やLambdaなどのAWSリソースに
権限を与えるために使います。

ポリシー グループ ユーザー ロールの関係性を表した資料です。

IAMポリシーを作成

DeveloperポリシーDirectorポリシーを作成します。

⚫︎Developerポリシー
EC2、RDSの全操作ができます。

⚫︎Directorポリシー
EC2の読み取りに使えます。

IAMを開いてポリシーを開き、ポリシーを作成していきます。

スクリーンショット 2022-10-13 2.30.37.png

developerポリシーから作っていきます。サービスの選択をクリックします。EC2を入力します。

スクリーンショット 2022-10-13 2.31.44.png

スクリーンショット 2022-10-13 2.33.26.png

全てのリソースを選びます。
スクリーンショット 2022-10-13 2.34.07.png

サービスの追加からRDSも同じように設定します。
スクリーンショット 2022-10-13 2.35.40.png

スクリーンショット 2022-10-13 2.36.05.png

ポリシーを作成していきます。
スクリーンショット 2022-10-13 2.37.53.png

developer-policyができました。
スクリーンショット 2022-10-13 2.38.41.png

Directorポリシーから作っていきます。ポリシーの作成をクリックします。
アクションは読み込みだけできるようにします。
スクリーンショット 2022-10-13 2.41.13.png

リソースは全てのリソースを選びます。
スクリーンショット 2022-10-13 2.42.25.png

ポリシーを作成していきます。
スクリーンショット 2022-10-13 2.43.34.png

こうしてポリシーが2つできました。
スクリーンショット 2022-10-13 2.44.20.png

IAMとグループとユーザーを作成

上で作ったポリシーをベースにグループを作っていきます。
DevelopersにはLuffyとZoroというユーザーを作ります。DirectorsにはAceというユーザーを作ります。

IAMに移動します。そしてユーザーグループからグループを作成します。

スクリーンショット 2022-10-15 9.59.26.png

スクリーンショット 2022-10-15 10.00.27.png

developerポリシーを選択します。そしたらグループの作成をします。
スクリーンショット 2022-10-15 10.01.00.png

こうしてグループが作成されました。

スクリーンショット 2022-10-15 10.02.30.png

そしてdirectorsグループも作ります。

スクリーンショット 2022-10-15 10.03.41.png

directorポリシーを選択します。そしてグループを作成します。
スクリーンショット 2022-10-15 10.04.00.png

こうしてグループができました。
スクリーンショット 2022-10-15 10.04.37.png

次にユーザーを追加していきます。

スクリーンショット 2022-10-15 10.06.23.png

まずはdevelopersからです。

スクリーンショット 2022-10-15 10.07.41.png

スクリーンショット 2022-10-15 10.09.18.png

アクセス許可の設定ですが、ユーザーグループの追加です。
developersにチェックを入れます。
スクリーンショット 2022-10-15 10.10.04.png

タグは今回は入力不要です。最後は確認をしてユーザーを作成します。
Eメールで送信しておきましょう。そしてcsvのダウンロードをしておきます。

スクリーンショット 2022-10-15 10.12.44.png

こうしてユーザー名のLuffy,Zoroが作成されました。グループがdevelopersの方に所属しています。
スクリーンショット 2022-10-15 10.17.47.png

次にdirectorsユーザーを作成していきます。ユーザー追加します。手順はdevelopersとほぼ同じです。

スクリーンショット 2022-10-15 10.21.42.png

スクリーンショット 2022-10-15 10.22.17.png

アクセス許可の設定ではdirectorsの方を選びます。
スクリーンショット 2022-10-15 10.22.57.png

タグはつけずにユーザーを作成していきます。

こうしてユーザーが作成されました。メールを送信してcsvをダウンロードします。
スクリーンショット 2022-10-15 10.24.57.png

こうしてAceユーザーが作成されました。directorsになっているのを確認してください。
スクリーンショット 2022-10-15 10.27.30.png

一回サインアウトして作成したユーザーでログインしてください。
ユーザー名をLuffy、Zoro、Aceにしてみてください。パスワード変更の画面になるはずです。

スクリーンショット 2022-10-15 10.34.10.png

ユーザー名がLuffyでログインできました。developersユーザー(Luffy)はEC2とRDSの全操作ができます。
スクリーンショット 2022-10-15 10.50.05.png

EC2で動かしてみます。

インスタンスを作成してください。developersの方はEC2が起動できるはずです。
サインアウトをしてdirectorsユーザー(Ace)からログインしてください。
こちらでもEC2を作成していきます。するとインスタンスの作成ができないことがわかると思います。
これらがIAMで行う権限管理です。それぞれのグループに適切な権限を割り当て適切な管理をします。

最後に自分のユーザーに戻っておいてください。

IAMロールを作成

IAMロールは一時的にアクセスを許可したアカウントが発行でき、EC2やLambdaなどのAWSリソースに
権限を与えるために使います。

ここではWebというロールを作成します。
まずはEC2のインスタンスを開きます。パブリックIPアドレスをコピーします。こちらでSSH接続してください。

スクリーンショット 2022-10-15 11.25.59.png

Downloads % ssh -i "aws-infra-ssh-key.pem" ec2-user@52.194.227.41 
#省略
[ec2-user@ip-10-0-12-220 ~]$

S3のバケットを取得していきます。

[ec2-user@ip-10-0-12-220 ~]$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".

上のようにEC2からS3を操作できない状態です。
そこでIAMを開きます。ロールを選び、ロールを作成します。
スクリーンショット 2022-10-15 11.33.34.png

今回はEC2からS3を操作するのでEC2を選択します。

スクリーンショット 2022-10-15 11.34.55.png

ポリシーはS3で検索してAmazonS3FullAccessを選択します。
スクリーンショット 2022-10-15 11.36.30.png

ロールの詳細などを見ていきます
スクリーンショット 2022-10-15 11.38.02.png

ポリシーがAmazonS3FullAccessになっていることを確認します。そしてロールを作成します。
スクリーンショット 2022-10-15 11.38.23.png

ロールができたことを確認したらEC2にいきます。
スクリーンショット 2022-10-15 11.40.26.png

ここからSSH接続していきます。
スクリーンショット 2022-10-15 11.41.54.png

そのために今作ったaws-infra-webを今作ったロールにアタッチします。
アクションからセキュリティを選び、IAMのロールを変更します。

スクリーンショット 2022-10-15 11.48.13.png

IAMロールをaws-infra-webにします。そしてIAMロールを更新します。
スクリーンショット 2022-10-15 11.48.55.png

IAMロールがaws-infra-webになりました。
スクリーンショット 2022-10-15 11.57.56.png

アタッチができたと確認したらターミナルに戻ります。そしてS3のバケット一覧を取得します。

[ec2-user@ip-10-0-12-220 ~]$ aws s3 ls  
2022-08-29 09:57:04 aws-cloudtrail-logs-709517189173-62bafeba
2022-08-29 09:50:56 aws-cloudtrail-logs-709517189173-64fea852
2022-08-29 10:14:45 aws-cloudtrail-logs-709517189173-a4b38cbc
2022-08-29 09:52:56 aws-cloudtrail-logs-709517189173-dfae4e54
2022-09-13 09:24:09 aws-infra-wordpress-nori-backet
2022-09-21 07:00:16 cf-templates-cald7ahrw4fu-ap-northeast-1
2022-09-21 10:08:50 cf-templates-cald7ahrw4fu-us-east-1

こうして ロールをアタッチしたことでEC2からS3の操作ができることがわかりました。
*ロールはEC2やLamdaから別のAWSサービスを操作する時に使えます。

IAMのベストな方法

  1. 個々にIAMユーザーの作成をします。
  2. ユーザーをグループに所属させ、グループに権限を割り当てます。
  3. 権限を最小限にします。
  4. EC2インスタンスから実行し、アプリケーションにはロールを使います。
  5. 定期的に不要な認証情報を削除します

資料

0
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
0
0