【AWS初学者】AWS IAM(Identity and Access Management)の入門

IT

はじめに

実務でAWSを活用しており、今後AWSの資格を取得することを目指して、勉強に励んでいきたいと思っている。

これからAWSを勉強する人、もしくは今後資格を取得したり、AWSを活用する人の支えになってくれればいいと思いこの記事をかいていく。

この記事をよむと….

  • IAMについての要点がすぐにわかるようになる。
  • IAMポリシー・IAMユーザー・IAMロールに対しての拒否反応が減る

このような効果がえられます。

AWSにおけるIAMとは

AWSのサービスやリソースへのアクセスを制御するサービスのことです。ほとんどのAWSサービスはこのIAMで権限管理されます。

IAMユーザー

AWSアカウント内で作成できるユーザーのこと。各種リソースを操作することができます。

IAMユーザーは、「アクセスキー」と呼ばれる、アクセスキーIDとシークレットキーという項目を含んだ文字列の組み合わせを生成できます。

氷の女王
氷の女王

①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つ割り当てられます。

ケイ
ケイ

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」といいます。

ケイ
ケイ

STSを使うことで、IAMユーザーをつくる必要がなくなり、結果としてIAMユーザーごとに作成されるアクセスキーを管理するひつようがなくなります。

▼AWS Security Token Service(STS)による権限管理

おわりに

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

参考

コメント

タイトルとURLをコピーしました