LoginSignup
2
4

More than 1 year has passed since last update.

【AWS】IAMについて理解を深めるためのハンズオン③

Last updated at Posted at 2021-02-03

さて、今回でラストです。

3回目の本記事では、開発部が仕事を一部委託している外注先に対する
IAMの実装をしていきます。

前回までの記事はこちら

AWSのIAMについて理解を深めるためのハンズオン①

AWSのIAMについて理解を深めるためのハンズオン②

IAMロールの適用

社外の人用にアカウントの作成をしたり、アクセスキーを発行することは基本的にしません。

それらの情報が漏洩してしまうと、セキュリティ事故に繋がる可能性があるからです。

社外の人がAWSリソースへアクセスする必要がある場合は、
アカウントやアクセスキーの代わりに「IAMロール」を付与します。
※社外の人がAWSアカウントを持っていることが前提です。

今回は、社外ユーザーが社内のEC2リソースにアクセスできるように設定をします。

本来であれば、別のAWSアカウントを作成して、別アカウント間でロールの付与ができることを確認するべきです。
今回のシナリオでは、同一アカウント内でロールを付与されるユーザー(委託先のユーザー)を作成して、擬似的にロールの付与をすることとします。
(決してAWSのアカウントを作るのがめんどくさかったわけでは・・・)

社外ユーザーの作成

まずは仮想的な社外ユーザーを作成します。

image.png

アクセス権限はこの場では特に何も設定しないでおきます。

ユーザー作成完了後、作成したユーザーでコンソールにログインし、EC2を開いて「インスタンスを起動」を選択します。

image.png

AMIを選択しようとすると、エラーが出て作成ができません。

image.png

”You are not authorized to perform this operation.”
というエラーが出ています。

これは、権限がないからこの操作はできないというエラー内容です。
先ほど何もポリシーをアタッチしなかったので、これが正常な動作です。

では、このユーザーがEC2リソースにアクセスできるようにロールの設定をしてきましょう。

ロールの作成

今回の主役となっている会社のアカウントで、
社外ユーザーがEC2リソースにアクセスするためのロールを作成します。

IAMから「ロール」を選択し、「ロールの作成」をクリックします。

image.png

信頼されたエンティティの種類の選択では、別のAWSアカウントを選択し、
このロールの使用を許可する社外ユーザーのアカウントID(ログイン時に使用する12桁の数字)を入力します。

image.png

アクセス権限ポリシーでは、EC2リソースへのアクセスを許可するため「AmazonEC2FullAccess」を選択します。

image.png

タグでは、適当に外部っぽものをつけておきます。

image.png

最後に、ロール名を入力します。
ロール名は後ほど使用するので、控えておきます。

image.png

ロールアクセス用のポリシー作成

次に、社外ユーザー側のアカウントで、先ほど作成したロールへアクセスするためのポリシーを作成する必要があります。

ポリシー作成画面でJSONを選択し、以下の内容を記述します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::<外部ユーザーのID>:role/<ロール名>"
        }
    ]
}

社外ユーザーのIDは、委託先の社外ユーザーID(数字12桁)を入力し、
ロール名は、先ほど作成したロール名を入力します。

ロールアクセス用のポリシー適用

社外ユーザーに先ほど作成したポリシーを適用します。

IAMの「ユーザー」から該当するユーザーを選択し、「アクセス権限の追加」をクリックします。

image.png

アクセス許可の付与で、既存のポリシーから先ほど作成したポリシーを選択します。

image.png

ポリシーにアタッチが完了したことを確認します。

image.png

これで設定は完了しました。

いざ、スイッチロール

先ほどは権限がなくてEC2インスタンスを作成できなかった社外ユーザーですが、
ロールを付与されたことにより作成できるようになったはずです。

確認していきましょう。

画面右上のアカウント名が表示されている箇所をクリックし、
「ロールの切り替え」を選択します。

image.png

自分のアカウントIDと、付与されたロール名を入力し、「ロールの切り替え」をクリックします。

image.png

ロールの切り替えに成功したら、画面右上のアカウント名に色がつきます。

image.png

EC2インスタンスが起動できるようになったのか、確認します。

EC2を開き、「インスタンスを起動」をクリックします。

image.png

先ほどはできなかったインスタンスタイプの選択ができるようになっています。

image.png

なんやかんや設定を進めていき、インスタンスの作成が完了しました。

image.png

これで社外ユーザーはEC2インスタンスをいじり放題になったというわけですが、
委託した業務が終了した際は速やかにロールを削除しましょう。

所感

ハンズオンを通して、IAMについてだいぶわかるようになった気がします。

特にスイッチロールは「信頼関係???」「ロール???」みたいな状態だったので、
手を動かしながら説明を読むことで理解が深まりました。

皆さんもぜひ、ドキュメントなどを読むだけでなく、実際に手を動かしてみてはいかがでしょうか!

参考

AWS を安全に使うために(IAMのベストプラクティス)

AWSで複数アカウントをスイッチロールする方法

AWSのIAMについて理解を深めるためのハンズオンシリーズ

[AWSのIAMについて理解を深めるためのハンズオン①]( https://qiita.com/ymochi_camera/items/bdaec3d0f3cfa60e7b0d)

AWSのIAMについて理解を深めるためのハンズオン②

AWSのIAMについて理解を深めるためのハンズオン③

この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4