テクノロジー
AWSにおけるアカウント・ユーザーまわりの概念について
はじめに
「まずはアカウントを…あっいや、AWSのアカウントというのはそういう感じのものではなくて……」
AWSをはじめて導入する方と打ち合わせを行うと、ほぼ毎回出てくる話題です。
今回はAWSにおけるアカウントやユーザーまわりを(自分のために)まとめていきます。
AWSアカウント
AWSにおけるアカウントとは、「ひとつひとつの環境のこと」を指しています。
AWSを利用したいと思ったら、まずはAWSアカウントを払い出してもらう必要があります。
その際、Amazonアカウントのような個人に紐づいているようなアカウントを想像される方もいるのですがAWSアカウントはそういう位置づけのアカウントではありません。
※冒頭のセリフはこの説明にたじろいでしまっている私です。
AWSアカウントとは「ひとつひとつの環境」のことを指しており、利用者はそのアカウント範囲内でVPCやEC2といったAWSリソースを複数持つことが可能です。
AWSアカウントの払い出しに必要な情報は以下です。
- メールアドレス
- パスワード
- 連絡先
- 支払情報
rootユーザー
rootユーザーとは、AWSアカウントの作成時に作成をされるものです。
アカウント内のすべてのAWSサービスとリソース、そして請求情報に対してフルアクセス権限を持ったユーザーになります。
AWSの公式からは、日常的なタスクにおいてはrootユーザーは使用せず、IAMユーザーなどを使用することが推奨されています。
最初のIAMユーザー作成の際はrootユーザーの使用が必要となります。
IAM
AWS Identity and Access Management(IAM)は、AWSリソースへのアクセスを安全に管理するためのサービスです。
IAMユーザー
AWSアカウント内での権限をカスタマイズできるユーザーになります。
一般的に想像されるアカウント(個人に紐づくアカウント)に近い概念かと思います。
IAMユーザーの作成直後は何も権限が与えられていません。
そこにIAMポリシーをアタッチすることで権限のカスタマイズが行えます。
IAMポリシー
AWSリソースに対してのアクセス権限などをオブジェクト式に定義可能なものになります。
IAMポリシーはJSONで表されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "hoge",
"Effect": "Allow",
"Action": "ec2:StartInstances",
"Resource": "*"
}
]
}
上記のポリシーを簡単に日本語にすると、
「このポリシーがアタッチされたユーザーは、アカウント内のすべてのEC2を起動をすることを許可する」
という意味を持ちます。
IAMグループ
複数のIAMユーザーをグルーピングすることができます。
IAMグループを使用することで、複数のIAMユーザーに対してまとめてIAMポリシーをアタッチすることが可能です。
その際、IAMユーザーは複数のIAMグループに属すことができます。
IAMロール
IAMロールでは、IAMポリシーを複数アタッチして権限をグルーピングしています。
主な使い方としては、AWSリソースに対して権限を付与します。
例えば、IAMロールには以下のIAMポリシーがグルーピングされているとします。
- S3バケットへのフルアクセス許可
- Lambdaの実行権限
このIAMロールがアタッチされたリソースはS3バケットへのアクセスが許可され、Lambdaを実行できるようになります。
おまけ
AWS スイッチロール
複数のAWSアカウントを利用する際、それぞれのアカウント権限をロールとして付与をすることでAWSアカウント切り替えを楽にできる機能のことです。
その際、ロールに付与されているポリシーによってそのアカウント内で行えることが制限されます。
- AWSアカウントID
- IAMロール
- 表示される際の名前
- 表示される際の色
上記4つ(うち2つは任意)を入力します。
コンソール上で、クリック一つでアカウントの切り替えが可能になります。
さいごに
AWSにおけるアカウントやユーザーといった概念は複雑かと思います。
大まかでも意味合いをつかむことで、セキュリティ面や運用面においてベストな使い方が実現できるかと思います。
※本記事は2022年07月時点の内容です。