#この投稿について
インフラにAWSを使ってチーム開発をすることになったので、その際の設定手順をまとめます。
#要件
今回は以下の要件を満たすようにアカウント設定を行います。
- Admin権限をもつのは、オーナーアカウントだけ。
- 開発メンバーはAdmin権限以外の権限をすべて与えられる。
- 開発メンバーは自分のパスワード変更が行える(通常はAdmin権限をもったアカウントのみが可能)。
ポイントは3つめのパスワード変更権限を開発メンバーにも与えることです。
#大まかな流れ
大まかな流れとしては、以下のようになります。
- アカウントの作成(オーナーアカウントの作成)
- グループの作成とポリシー(権限)の適用
- ユーザーの作成(開発メンバー用のアカウント作成)
- グループにユーザーを紐付け
#手順
##アカウントの作成(オーナーアカウントの作成)
アカウント作成は以下のページ案内に従って進むだけでOKです。
##グループの作成とポリシー(権限)の適用
オーナーアカウントでサインインすると以下のようなAWSのサービス一覧が表示された画面になるはずです。
アカウント設定関連はこの中の「Identity & Access Management (以降、IAMと略記)」で行います。
IAMをクリックすると以下のような画面になります。
ここにサインイン用URLが表示されます。これは後で開発メンバーに教えてあげる必要があります。
グループの作成は左メニューの「Groups」から行います。
この段階ではグループがない状態なので、「Create New Group」からグループの作成に進みます。
ここでは、開発メンバー用のグループを「developer」という名前で作ります。
次にグループにポリシー(権限)を付与していきます。今回は開発グループにはAdmin権限以外の権限をすべて与えるので、「Power User Access」というのを選択します。
ポリシーの詳細が表示されます。そのまま次にすすみます。
このような確認画面が表示されるので、「Create Group」を押すと、グループが作成されます。
新しくdeveloperという名前のグループが作成されていることが確認できます。
###パスワード変更権限の付与
次にこのdeveloperグループにパスワードを変更する権限を付与します。
developerグループの詳細ページで、「Attach Another Policy」をクリックします。
続いて「Custom Policy」を選択します。
権限設定フォームが表示されるので「Policy Name」には任意の名前を付け(ここでは「password_change」とした)、「Policy Document」には以下をそのまま入力します(コピペしてください)。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"iam:ChangePassword",
"iam:GetAccountPasswordPolicy"
],
"Resource": "*"
}]
}
ここまで入力し、「Apply Policy」をクリックすればパスワード変更権限が付与されます。
##ユーザーの作成(開発メンバー用のアカウント作成)
次に開発メンバーのアカウントをそれぞれ作っていきます。
メンバーの作成はグループ作成と同じくIAMサービスから行います。左メニューの「Users」をクリックします。
初期状態では、オーナーアカウントのユーザーだけが登録されているのが確認できます。
「Create New Users」からユーザーの登録に進みます。
今回は「dog」と「cat」という名前で2ユーザーを登録します。
「Download Credentials」で各ユーザー分の証明書をダウンロードしておきます。この証明書はAWSのAPIを使う際に利用するので、後で各メンバーに教えてあげます。
ここまでで、dogとcatというユーザーが登録されたのが確認できます。
次にユーザーに初期パスワードを設定していきます。
ユーザー詳細画面に入ると、このような画面になるので、「Manage Password」をクリックします。
任意の初期パスワードを入力し(後でメンバーに教えるので忘れないように!)、「Require user to create ....」にもチェックを入れます。これにチェックを入れることで、このユーザーがログインした際に初期パスワードを変更するように自動で求められるようになります。
この初期パスワードの設定を作成したユーザーそれぞれに行います。
##グループにユーザーを紐付け
続いてはdeveloperグループにユーザーを紐付けていきます。
developerグループの詳細ページに入り、「Add Users to Group」をクリックします。
グループに追加するユーザーを選択する画面になるので、catユーザーとdogユーザーにチェックをいれて追加を実行します。
以上で、アカウントの設定は完了です。
#開発メンバーに教える情報
ここまでのアカウント設定が完了したら、以下の情報を開発メンバーに教えてあげます。
- サインインURL
- ユーザー名(今回の例でいうとcatとかdog)
- 初期パスワード
- Credentials(ユーザー作成の際にダウンロードした証明書。AWSのAPIを利用する際に必要)
以上の情報で、各開発メンバーはサインインURLにアクセスし、ユーザー名と初期パスワードを入れることで、AWSのコンソールにログイン可能となります。