- 03-5820-1777平日10:00〜18:00
- お問い合わせ
今回はIAMユーザを使用してEC2のインスタンスにログイン出来るセッションマネージャという機能を使用してみたいと思います。
通常はEC2インスタンス作成の際に作った、pemキーを使用してsshアクセスをするのですが、IAMユーザでログイン管理をしたい場合もあるかと思いますので、それをやってみたいと思います。
1.EC2インスタンス作成
2.IAMでユーザー用ポリシー作成 EC2アクセス権限、 セッションマネージャ使用権限等
3.IAMでユーザー作成、ユーザ用ポリシー付与
4.IAMでロールを作成、ロールにセッションマネージャアクセス許可ポリシー付与
5.EC2インスタンスにロールをアタッチ
2つのユーザー、2つのEC2インスタンスを作成して試したいと思います。
下記の図のようにユーザー、EC2、ポリシー、ロールを作成していきたいと思います。
1.EC2インスタンス作成
PC01、PC02という名前のインスタンスをそれぞれ作成します。
2.IAMでユーザー用ポリシー作成
EC2閲覧ポリシー(DescribeEC2Instance)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "001",
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}
]
}
SSM(セッションマネージャ)使用ポリシー(DescribeSsmInstance)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "001",
"Effect": "Allow",
"Action": [
"ssm:DescribeInstanceInformation",
"ssm:DescribeSessions",
"ssm:GetConnectionStatus",
"ssm:DescribeInstanceProperties"
],
"Resource": "*"
}
]
}
PC01へのSSMポリシー(SsmAccessPC01)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "001",
"Effect": "Allow",
"Action": "ssm:StartSession",
"Resource": "arn:aws:ec2:ap-northeast-1:488821267897:instance/i-051cac51072605f39"
},
{
"Sid": "002",
"Effect": "Allow",
"Action": [
"ssm:ResumeSession",
"ssm:TerminateSession"
],
"Resource": "arn:aws:ssm:*:*:session/${aws:username}-*"
}
]
}
PC02へのSSMポリシー(SsmAccessPC02)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "001",
"Effect": "Allow",
"Action": "ssm:StartSession",
"Resource": "arn:aws:ec2:ap-northeast-1:488821267897:instance/i-0ee187d8794b12114"
},
{
"Sid": "002",
"Effect": "Allow",
"Action": [
"ssm:ResumeSession",
"ssm:TerminateSession"
],
"Resource": "arn:aws:ssm:*:*:session/${aws:username}-*"
}
]
}
3.IAMでユーザー作成、ユーザ用ポリシー付与
・user01作成
ユーザ作成画面で上記で作成したポリシーを追加し、名称を「user01」で作成します。
追加ポリシー:「DescribeEC2Instance」、「DescribeSsmInstance」、「SsmAccessPC01」
・user02作成
ユーザ作成画面で上記で作成したポリシーを追加し、名称を「user02」で作成します。
追加ポリシー:「DescribeEC2Instance」、「DescribeSsmInstance」、「SsmAccessPC02」
4.IAMでロールを作成
「ECRoleforSSM」という名称でロールを作成します。
・エンティティ選択
信頼されたエンティティタイプに「AWSのサービス」、ユースケースに「EC2」を選択します。
・許可ポリシー追加
「AmazonEC2RoleforSSM」を追加してロールを作成します。
5.EC2インスタンスにロールをアタッチ
インスタンスの詳細画面でアクション=>セキュリティ=>IAMロールの変更を選択
先ほど作成したロールの「ECRoleforSSM」を設定
「user01」での動作確認
・インスタンス一覧表示
正常に表示できています。
・「PC01」へセッションマネージャでのログイン
「PC01」インスタンスの詳細画面へ遷移し接続ボタン押下
セッションマネージャを選択し接続を押下
正常にログイン出来ました。
・「PC02」へセッションマネージャでのログイン
同じように「PC02」インスタンスにもログインをしてみます。
権限エラーでログインできませんでした。
「user02」での動作確認
・インスタンス一覧表示
正常に表示できています。
・「PC01」へセッションマネージャでのログイン
権限エラーでログインできませんでした。
・「PC02」へセッションマネージャでのログイン
正常にログイン出来ました。
以上の様にIAMユーザでEC2インスタンスへのログイン管理をする事が出来るのが確認出来ました。
OSがAmazon Windowsや、他のAmazon用でないOSが使用する際は、専用のクライアントアプリの使用や、EC2のOSにアプリケーションを入れたりする必要がありますので、それはまた後日書いていきたいと思います。