IAMを設定してAWSのアカウント権限を管理する方法(後編)

今回は、前編に引き続き、IAMを設定してAWSのアカウント権限を管理する方法をご紹介します。

アクセス許可境界(Permissions boundaries)

IAM エンティティに対して最大権限を設定する方法です。
許容範囲を制約する方法で非常に効果的です。

アクセス許可境界設定方法
「ユーザー」を選択

「境界の設定」を選択

ポリシーを選択し追加

上のように設定すると「AdministratiorAccess」権限でAdmin権限を持っていても許可がEC2FullAccessしかないのでEC2FullAccessしか利用できないようになります。

リソース基盤政策 (Resource-based policies)
リソースに対する特定の作業を遂行できる権限を付与します。リソース基盤の政策はインライン政策です。 管理型リソース基盤のポリシーはありません。

リソース基盤政策設定方法
設定するリソースを設定します。今回はS3です。S3アクセス許可のタブでブロックパブリックアクセスの変更を選択します。

Json形式のポリシーを入力して変更を保存します。

JSON形式のポリシー例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
       "Sid": "Statement1",
       "Principal": {"AWS":"arn:aws:iam::(AccountID):user/Dev-Intern"},
       "Effect": "Allow",
       "Action": "s3:*",
       "Resource": "バケットのARN/*"
    }
  ]
}

上のポリシーは
「Principal」に対して(今回はDev-Internユーザ)
「Action – s3 : *」すべてのS3権限で
「Resource」に設定しているリソースを利用できるようになります。

ロールは
対象が AWS で実行できることとできないことを決定するアクセス許可ポリシーを持っているのは IAM ユーザーと似ています。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。

これに関して、AWSは帽子でよく例えます。
管理者という帽子をかぶった人は管理者としての資格を持ち、その帽子を他人が被ることになったら、その人が管理者の資格を使用することができます。

逆に帽子を奪うと管理者資格が使えなくなります。

EC2からS3を読むロールを適用する方法
ロールを作成する時に「AWSのサービス」、「EC2」を選択して「次へ」クリックします。

権限はEC2からS3を読むために「AmazonS3ReadOnlyAccess」を追加します。

ロール名と権限を確認した後に作成します。

ロール設定前にEC2でS3を読んでみます。
EC2に接続して「aws s3 ls」とコマンドを実行します。
コメントを実行すると下記のようにコマンドの実行ができないことを確認できます。

EC2に先に作ったロールを入れてみます。
WEBコンソールで対象になるEC2を選択し「アクション➞セキュリティ➞IAMロールを変更」を選択します。

以前作ったIAMロールを選択して保存します。

もう一度同じくEC2に接続して「aws s3 ls」とコマンドを実行してS3のリストを確認できます。

Smallitのサービス