AmazonのAWSにログオンすると、『ルート・アクセスキーを無効化してIAMに移行せよ』と、毎回メッセージが表示される。確かに、普段使うバックアップ用途などではフルアクセスは必要無いため、ルート権限のアクセスキーを削除してIAMに移行した。
Amazonでは、次のような声明を出している
ルート・アクセスキーとX509認証の無効化
削除するのではなく、『無効化』という処理を行う。
AWSのユーザ・ダッシュボードを表示して、Security Credentials設定で無効化(Inactive)処理を行う
公式マニュアル「AWS アカウントのアクセスキー管理 」による
IAM グループの作成
Amazon公式マニュアルでは、「グループに権限を割り当て」たうえで、「ユーザをグループに参加させる」ということになっている。ただ、「ユーザに権限を直接割り当てる」こともできるため、めんどくさいなら、グループを作らなくても良い。
権限(ポリシー)の設定は、とりあえずS3フルアクセスのテンプレートを選択する。内容を編集するか聞かれるので、アクセスするバケットの制限を設ける場合は「はい」を押して権限を編集する
権限(ポリシー)設定の構文詳細は公式マニュアル『AWS IAM ポリシーの概要』に詳しく書かれている。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }
上のようになっている権限を、下のように変更して特定バケットしか読み書きできないよう制限する
{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"s3:ListAllMyBuckets", "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":"s3:*", "Resource":[ "arn:aws:s3:::MY-BACKET", "arn:aws:s3:::MY-BACKET/*" ] } ] }
ここで、arn:aws:s3:::MY-BACKET …
のような表記は、公式マニュアル『Amazon リソースネーム(ARN)と AWS サービスの名前空間』に例が掲載されいてる。
IAM ユーザの作成
画面に従ってユーザ追加すると、アクセス・キーとシークレット・アクセス・キーが表示される。シークレット・アクセス・キーはこれ以降二度と表示されないので、ここで手元に保存しておく。もし、シークレット・アクセス・キーを忘れた場合、現在のアクセス・キーを一旦削除して新しいものを作る必要が出てくる。(アクセス・キーはユーザ当り2個しか作れない)
ユーザ作成後、グループに参加させる