はじめに
実務でAWSを活用しており、今後AWSの資格を取得することを目指して、勉強に励んでいきたいと思っている。
これからAWSを勉強する人、もしくは今後資格を取得したり、AWSを活用する人の支えになってくれればいいと思いこの記事をかいていく。
この記事をよむと….
- IAMについての要点がすぐにわかるようになる。
- IAMポリシー・IAMユーザー・IAMロールに対しての拒否反応が減る
このような効果がえられます。
AWSにおけるIAMとは
AWSのサービスやリソースへのアクセスを制御するサービスのことです。ほとんどのAWSサービスはこのIAMで権限管理されます。
IAMユーザー
AWSアカウント内で作成できるユーザーのこと。各種リソースを操作することができます。
IAMユーザーは、「アクセスキー」と呼ばれる、アクセスキーIDとシークレットキーという項目を含んだ文字列の組み合わせを生成できます。

IAMにおけるアクセスキーは何につかうんでしょうか?
活用方法
①AWS CLIでの活用
- AWS CLIとはコマンドラインからAWSを操作できるツールです。設定することでコマンドからAWSサービスを実行できます。
- 例)Lambdaへのデプロイ・S3バケットの保存
②SDKを使ったプログラムからのアクセス
- AWS SDKとは、さまざまなプログラミング言語(Python、Java、Ruby)でAWSサービスにアクセスするためのライブラリです。
- 例)S3バケットへのファイルのアップロード・DynamoDBテーブルへのデータの挿入
③サードパーティツールでの利用
- TerraformやJenkinsなどのインフラツールやCI/CDツールにアクセスするキーを設定することで、これらのツールを通じてAWSリソース管理やデプロイを自動化できます。

管理方法については議論の余地がありそうです。
IAMポリシー
AWSリソースへのアクセス権限を制御する機能のことです。どのサービスの、どのリソースを誰が実行するのかを記述します。
※ ec2インスタンスを起動して止める設定をかいてます。
{
"Version": "2012-10-17", // 書式のバージョン
"Statement": [ // 実際に付与する権限と条件を記述する
{
"Sid": "StartStopIfTags", // 識別子
"Effect": "Allow", // 【重要】アクションを許可するのか拒否するのかを記述
"Action": [
"ec2:StartInstances", // 【重要】実際に制御したい記述を書く
"ec2:StopInstances"
],
"Resource":"arn:aws:ec2:region:accout-id:instance/*", // 【重要】制御するリソースを記述する
"Condition": { // 条件を詳細に記述する
"StringEquals": {
"ec2:ResourceTag/Name": "Sample"
}
}
]
}
IAMロール
AWSリソースに紐付けられる役割のことです。もっとわかりやすくすると、一時的に特定の権限を持たせるための「特殊な社員証」です。
普段、営業部門のいる人が開発部門が扱っているデータをみたいときに、短期的にアクセスできる社員証のようなものを指します。
IAMロールは各リソースに対して、1つ割り当てられます。

1つのEC2インスタンスに1つ割り当てられている認識です
IAMグループ
IAMユーザーをグループ分けする機能です。それぞれのIAMユーザーは複数のIAMポリシーにアタッチ(権限を与えること)ができます。
各IAMユーザーにIAMポリシーをアタッチすると管理が複雑になるため
- IAMポリシーはグループにアタッチ(権限を与えること)する
- IAMグループにIAMユーザーを所属することで権限管理をする
という方法が推奨されています。

参考:https://iselegant.hatenablog.com/entry/2020/05/24/215808
【おまけ】AWS STS(Security Token Service)
AWSリソースや、IAMユーザーをもっていないユーザーやアプリケーションに対して、一時的に認証情報を付与する機能です。一時的認証情報を請求する操作を「Assume Role」といいます。

この設定、超便利です。LambdaをGUIで生成した際に自動で、AssumeRoleが生成されてたのを覚えています
STSを使うことで、IAMユーザーをつくる必要がなくなり、結果としてIAMユーザーごとに作成されるアクセスキーを管理するひつようがなくなります。
▼AWS Security Token Service(STS)による権限管理

おわりに
AWSのIAMを学習していきました。IAMはわかりにくいところではありますが超重要なところなので抑えたいですね。特にSTSの仕組みにはおどろきでした。次回も引き続きAWSのサービスについてふれていきます。
コメント