利用目的
インターンシップの参加学生向けに、AWS操作実習を行うにあたり、余計な操作ができない権限が割り当てられたユーザーを発行したい。
プロンプト
AWSのIAMユーザーグループを作成し、一定の操作のみしか行えないユーザーを作成、グループに追加していく予定です。
以下に、該当ユーザーが実施想定の操作を列挙するので、適切なポリシーを提示してください。
・EC2インスタンス作成
⇒VPCは既存のものを利用
キーペアは既存のものを利用
セキュリティグループは既存のものを利用
・EC2のリストを表示する
・EIP割り当て、EC2関連付け
・EC2 Instance Connectを使ってEC2に接続する
・EIPの解放
・EC2の削除
プロンプトのポイント
提示されるポリシーを軽く確認した後は、実際に設定してみて、問題がある部分を直していく。
達成された成果
以下のポリシーが生成された。
過不足ないように思われたが、これを設定して実習内容をなぞってみた結果、以下のポリシーが足りないことがわかった。
– ec2:DescribeAddresses
– ec2:DisassociateAddress
他にもエラーがでて見栄えが悪くなるようなポリシーも適宜追加したが、トータルとしてスピーディーに構築することができた。
▼生成されたポリシー
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“ec2:RunInstances”,
“ec2:DescribeInstances”,
“ec2:DescribeInstanceStatus”,
“ec2:DescribeImages”,
“ec2:DescribeKeyPairs”,
“ec2:DescribeSecurityGroups”,
“ec2:DescribeSubnets”,
“ec2:DescribeVpcs”,
“ec2:DescribeInstanceTypes”,
“ec2:CreateTags”
],
“Resource”: ““
},
{
“Effect”: “Allow”,
“Action”: [
“ec2:AllocateAddress”,
“ec2:AssociateAddress”,
“ec2:ReleaseAddress”,
“ec2:DisassociateAddress”
],
“Resource”: ““
},
{
“Effect”: “Allow”,
“Action”: [
“ec2:TerminateInstances”
],
“Resource”: ““
},
{
“Effect”: “Allow”,
“Action”: [
“ec2-instance-connect:SendSSHPublicKey”
],
“Resource”: “arn:aws:ec2:::instance/“
},
{
“Effect”: “Allow”,
“Action”: [
“ssm:GetParameters”
],
“Resource”: “*”
}
]
}
▼最終的なポリシー
▼最終的なポリシー
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“ec2:RunInstances”,
“ec2:DescribeInstances”,
“ec2:DescribeInstanceStatus”,
“ec2:DescribeImages”,
“ec2:DescribeVolumes”,
“ec2:DescribeKeyPairs”,
“ec2:DescribeSecurityGroups”,
“ec2:DescribeSubnets”,
“ec2:DescribeVpcs”,
“ec2:describeNetworkInterfaces”,
“ec2:describeNatGateways”,
“ec2:DescribeRouteTables”,
“ec2:DescribeInstanceTypes”,
“ec2:DescribeSecurityGroupRules”,
“ec2:DescribeAvailabilityZones”,
“ec2:DescribeInstanceAttribute”,
“ec2:CreateTags”,
“ec2:DeleteTags”,
“ec2:DescribeTags”
],
“Resource”: ““
},
{
“Effect”: “Allow”,
“Action”: [
“ec2:AllocateAddress”,
“ec2:DescribeAddresses”,
“ec2:AssociateAddress”,
“ec2:DisassociateAddress”,
“ec2:ReleaseAddress”
],
“Resource”: ““
},
{
“Effect”: “Allow”,
“Action”: [
“ec2:TerminateInstances”
],
“Resource”: ““
},
{
“Effect”: “Allow”,
“Action”: [
“ec2-instance-connect:SendSSHPublicKey”
],
“Resource”: “arn:aws:ec2:::instance/“
},
{
“Effect”: “Allow”,
“Action”: [
“ssm:GetParameters”
],
“Resource”: “*”
}
]
}
使用上のヒントやアドバイス
AIは実際に操作して作ってくれるわけではないので、最初で完全なものが出てくるとは考えず、問題が出たら直したり質問する姿勢で臨む。
レビューを書く | |