💨

【さらっとAWS入門】IAMユーザー

2021/01/30に公開

はじめに

今年に入り業務でAWSを使うようになりました。
せっかくなので、AWSで使う基本的なサービスのひとつである「IAM」についてまとめてみました。

AWSのアカウント

AWS以下の2種類のアカウントが存在します。

  • AWSアカウント
    AWS全サービスを利用可能なアカウント(ルートアカウント)
    一番最初に作られる。

  • IAMユーザー
    AWSを利用する各利用者向け作成されるアカウント。
    読み方は「アイアム」
    必要に応じて作成する。

IAMユーザーとは

AWSアカウントはすべての操作が可能なため、例えば作成したEC2インスタンスやRDBなどを削除することもできてしまいます。もし、全ユーザーがAWSアカウントを使って誤って何かを削除してしまったなどがあっては困ってしまいます。
そこで、基本的には利用者ごとに「IAMユーザー」を作成します。
IAMはIdentity and Access Managementの略。
各IAMユーザーには操作権限を細かく付与することができ、「このユーザーは削除はできないようにする」といったことが可能になります。

IAMポリシーって?

IAMではポリシーというものを付与して権限設定を行います。
ポリシーには「どのサービスの(Action)」「どういう機能や範囲を(Resource)」「許可or拒否するか(Effect」という3つのルールに基づいています。

「AmazonS3ReadOnlyAccess」というポリシーを例に見てみましょう。
AmazonS3ReadOnlyAccessは下記にようなJSONが記述されています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}

上記は、
S3というサービスの情報の取得と一覧のリスト表示を(Action)、
すべて(*)の範囲で(Resource)、
許可します(Effect)

といった意味になります。
つまり、S3ストレージの読み取りを可能にするポリシーということです(ポリシー名の通りですね!)

上記のポリシーはAWSが最初から設定しているポリシーでAWS管理ポリシーといいます。
一方で、ユーザーが独自でポリシーを作成することもでき、それをカスタマー管理ポリシーといいます。

IAMグループ

IAMユーザー一つ一つに権限を付与することも可能ですが、アカウント数が多くなってくると設定や管理が大変です。
そこで便利なのがIAMグループです。
グループは同じ権限を持ったユーザーの集まりです。グループを作成しそこに権限を付与し、そこにIAMユーザーを追加することでそのグループに付与した権限がIAMユーザーにも付与されます。
「アカウント管理グループ」、「サーバー管理グループ」、「サーバー利用者グループ」などのグループを作成し担当ユーザーを追加するといった運用ができます。

IAMロール

IAMロールは一時的にAWSリソースへアクセス権限を付与する場合に使用します。
ロールはユーザー、アプリケーション、サービスにそのアクセス権を付与できます。
例えばユーザーにEC2インスタンスの削除権限を一時的に与えたいといった場合はそのユーザーにロールを関連付けると削除権限が与えられます。また、サービスに対してもロールを関連付けさせることもでき、例えばEC2から一時的にメールのサービス(SES)を利用する際はEC2にSESのアクセス権限のロールを付与すれば可能となります。
(ただし、私自身はまだロールの機能を使ったことがないです。。)

おわりに

今回はAWSで必須のサービスである「IAM」についてまとめて見ました。これからAWSのアカウントを作られる方はまずこのIAMユーザーを作ってみるところから始めてみてはどうでしょうか。

ではまた!

Discussion