★悩み★
・AWSにおけるユーザーの管理は、どうすればいいのだろうか。
・AWSのサービスに対するアクセス管理には何を使えばいいのだろうか。
・AWSのサービスに対して、一時的にアクセス権限を与えたいな。
・AWS IAMを使うと、何ができるのだろうか。
こういった「悩み」を答えます。
★本記事の内容★
① IAM/Organizationsを使ったAWSでのユーザー管理方法をご紹介
② IAMポリシーを使ったAWSでのアクセス管理をご紹介
③ IAMロールを使ったAWSでの一時的に権限を付与する方法をご紹介
これからご紹介する「AWS IAMを使ったユーザ管理とアクセス管理の仕組み」を理解することで、「AWS 認定 ソリューションアーキテクト アソシエイト」資格に合格しやすくなります。
記事の前半では「AWS IAMを使ったユーザー管理とアクセス管理」を解説しつつ、記事の後半では「一時的にあるユーザーに権限を付与する方法」を具体的に解説します。
この記事を読み終えることで、「AWS IAMの使い方」を理解した状態になります。
「AWSとは何か?」や「AWSの基礎的なサービスは何か?」を知りたい方は、以下の記事をご覧ください。
IAM/Organizationsを使ったAWSでのユーザー管理方法
「IAM/Organizationsを使ったAWSでのユーザー管理方法」に関してご紹介します。
★IAM/Organizationsを使ったAWSでのユーザー管理方法★
・AWSにおいて管理するべき3種類のユーザー
・IAMを使ってAWSのユーザーをグループ単位で管理
・AWS Organizationsを使って複数のルートユーザーを管理
上記の方法で、「AWSでユーザーを管理」できます。
以降で、上記「IAM/Organizationsを使ったAWSでのユーザー管理方法」に関してご説明します。
AWSにおいて管理するべき3種類のユーザー
「AWSにおいて管理するべき3種類のユーザー」に関してご説明します。
AWSのマネジメントコンソール(AWSの管理画面)を利用できるユーザは、以下の3種類です。
★AWSの管理画面にログインできるユーザーの種類★
・ルートユーザー
・IAMユーザー
・フェデレーションユーザー
上記「AWSの管理画面にログインできるユーザーの種類」の各ユーザーがどのようなユーザーかを以降で説明します。
ルートユーザー
AWSアカウントの作成に利用したメールアドレスでAWSの管理画面にログインすると、ルートユーザーになります。
ルートユーザーは、以下の特徴を持つユーザーです。
★ルートユーザーの特徴★
全てのAWSサービスや配備されたリソースにフルアクセス(作成、削除、参照、編集)できます。
上記の特徴のため、ルートユーザーを乗っ取られると、AWSで構築したシステムを破壊(削除)される可能性があります。
そのため、次に紹介するIAMユーザー作成後、ルートユーザーのログイン情報を金庫などで管理しましょう。
IAMユーザー
IAM(AWS Identity&Access Management)を利用することで、IAMユーザーを作成できます。
★IAMユーザーとは★
・ルートユーザーで作成された「AWSアカウント内のユーザー」
→ IDとパスワードでログイン
→ アクセスキーIDとシークレットアクセスキーでログイン
・各IAMユーザーにポリシー(制限事項)を設定し、AWSでできることを制限
普段の運用では、上記特徴を有するIAMユーザーで行います。デフォルトでIAMユーザーを作成した場合、何も権限が与えられていない状態になります。
フェデレーションユーザー
社内の既存認証基盤を利用し、SAML(セキュリティアサーションマークアップランゲージ)認証でAWSマネジメントコンソールにログインできます。上記でログインしたユーザーを「フェデレーションユーザー」と言います。
★フェデレーショNユーザーとは★
・SAML認証でログインしたユーザー
→ IAMユーザーを作成する手間の削減が可能
・AWSログイン後、IAMロール(後ほど紹介)で定めだれた操作が可能
「既存の認証基盤を利用したい」や「一時的にAWSの操作権限を与えたい」場合には、フェデレーションユーザーを活用しましょう。
以上が、AWSで利用できる3種類のユーザーで、管理するべきユーザーとなります。
IAMを使ってAWSのユーザーをグループ単位で管理
「IAMを使ってAWSのユーザーをグループ単位で管理」に関してご説明します。
IAMユーザーは、基本的にグループ単位で管理しましょう。
上図のように、役割ごとにグループ(上図だと開発部隊と保守部隊)を作成します。その後、作成したグループに作成したIAMユーザーを割り当てましょう。
最後に、グループに後ほど紹介するポリシー(例えば、EC2の削除などの操作が可能)を割り当てていきます。
以上のように、AWSではグループ単位でIAMユーザーを管理します。
AWS Organizationsを使って複数のルートユーザーを管理
「AWS Organizationsを使って複数のルートユーザーを管理」に関してご説明します。
大きな組織になると、複数のAWSアカウントを所持している場合があります。例えば、「開発用にはXXXのAWSアカウント」「本番稼働用にはYYYのAWSアカウント」のように使い分けます。
上記運用だと、複数のルートユーザーが存在します。そこで、複数のルートユーザーを管理するサービスとして「AWS Organizations」があります。
★AWS Organizationsとは★
・複数のルートユーザー(AWSアカウント)を管理可能
・グループ単位でアカウントを管理
・グループ単位やルートユーザー単位でポリシーを付与可能
AWS Organizationsを使うと、以下のようにルートユーザー(AWSアカウント)を管理できます。
上図だと、
S3ポリシーは、全てのAWSアカウントに付与されます。
DynamoDBポリシーは、AWSアカウントaに付与されます。
EC2ポリシーは、AWSアカウントcとAWSアカウントdに付与されます。
と管理できます。
以上が、「AWS Organizationsを使って複数のルートユーザーを管理」となります。
IAM/Organizationsを使うと、AWSでのユーザーを細かい単位で管理できます。
IAMポリシーを使ったAWSでのアクセス管理
「IAMポリシーを使ったAWSでのアクセス管理」に関してご紹介します。
★IAMポリシーを使ったAWSでのアクセス管理★
・IAMポリシーとは
・IAMポリシーの書き方
AWSでのアクセス管理には、IAMポリシーを使います。以降で、上記「IAMポリシーを使ったAWSでのアクセス管理」の各項目に関してご紹介します。
IAMポリシーとは
「IAMポリシーとは」に関してご説明します。
AWSサービスへのアクセス制御をするために、IAMポリシーを使います。
★IAMポリシーとは★
・AWSサービスへのアクセス(作成、参照、削除など)を制御可能
・OS内のアクセス権は制御不可
・2種類のポリシー
→ アイデンティティベース:IAMユーザー/グループ/ロールに付与
→ リソースベース:Amazon S3のバケットなどのリソースに付与
IAMポリシーが付与されたAWSサービスへのアクセス許可は、以下の流れになります。
IAMポリシーを使い適切にAWSサービスへのアクセスを制御しましょう。
以上が、「IAMポリシーとは」となります。
IAMポリシーの書き方
「IAMポリシーの書き方」に関してご説明します。
「ビジュアルエディタ」または「JSON」でIAMポリシーを作成できます。
IAMの管理画面にアクセスすることで、IAMポリシーを作成できます。
IAMの管理画面へアクセス
ビジュアルエディタでのIAMポリシーの作成は、下図のような感じです。
JSONでのIAMポリシーの作成は、下図のような感じです。
以上のように、IAMポリシーを作成し、アクセス管理ができます。
AWSサービスへのアクセス管理をするために、IAMポリシーを使いましょう。
IAMロールを使ったAWSでの一時的に権限を付与する方法
「IAMロールを使ったAWSでの一時的に権限を付与する方法」に関してご紹介します。
「Aさんにシステムのテストをして欲しいから、一時的に権限付与をしたい」という場面があると思います。Aさんのアカウントを開発部隊のグループからテスト部隊のグループに移動させるのは手間がかかります。
そこで、IAMロールを利用した一時的な権限付与を使いましょう。
★IAMロールの使い方★
・IAMロールとは
・IAMロールのユースケース
・IAMロールを使い一時的に権限を付与する方法
以降で、上記「IAMロールの使い方」の各項目に関してご紹介します。
IAMロールとは
「IAMロールとはどのようなものなのか」をご紹介します。
★IAMロールとは★
・IAMロールは、複数のポリシーをグループにしたもの
例)開発ロール:EC2ポリシー、S3ポリシー、DynamoDBポリシー
保守ロール:EC2ポリシー、S3ポリシー
・AWSリソースにAWSサービスへのアクセス権限の設定が可能
例)EC2インスタンスからS3に書き込みをしたい場合は、
「S3に書き込み可能」が含まれたロールを付与すれば良い
・ロールにアタッチされたポリシーをユーザーまたはサービスに継承可能
例)ユーザーA ← 開発ロール ー ポリシーY
↖︎ ポリシーZ
ポリシーZは無視され、開発ロールのポリシーYが優先
上記がIAMロールとなります。
IAMロールのユースケース
「IAMロールのユースケース」に関してご紹介します。
★IAMロールのユースケース★
・AWSリソースにAWSサービスへのアクセス権限を設定したい場合
・フェデレーションユーザーアクセス権限を設定したい場合
・一時的なアクセス権限を付与したい場合
上記を実現したい場合に「IAMロール」を使います。
IAMロールを使い一時的に権限を付与する方法
「IAMロールを使い一時的に権限を付与する方法」に関してご説明します。
AWS Security Token Service (AWS STS)をIAMロールに付与することで、一時的に権限をあるユーザーに付与できます。
また、Amazon CognitoとIAMロールを利用することでTwitterやFacebookのアカウントなどを通して、一時的にAWSのリソースへアクセスできます。
IAMロールを使うことで、簡単に一時的に権限を付与できます。
【まとめ】AWSのIDとアクセス管理を徹底解説【IAMで管理】
今回の記事を通して、「AWSのIDとアクセス管理をする方法」をご紹介することで、以下の悩みを解消しました。
★悩み★
・AWSでのユーザー管理ってどうするんだろうか。
・AWSでサービスへのアクセス管理ってどうするんだろうか。
・一時的にあるユーザーにアクセス権限を与える方法が分からない。
「AWSのIDとアクセスを管理するには?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント