9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IAM要点まとめ

Last updated at Posted at 2014-11-13

IAMは無料。使い放題。
AWSユーザーの認証とアクセスポリシーを管理する。

AWS Black Belt Techシリーズ AWS IAM

AWSの操作をグループ、ユーザー、ロールといった単位で管理出来る

‘IAM構成例’
管理者 AWSアカウント 全操作可能
開発者 IAMユーザーorグループ S3に関する全ての操作が可能
運用者 ロール S3参照のみ期間限定で可能

IAMユーザー

  • 最大5000ユーザー
  • ユーザー名、(オプションで)パス、所属グループ、パーミッション(AWSリソースのアクセス権限)が設定可能

IAM グループ

  • 最大100グループ
  • グループ名、(オプション)パス、パーミッション(AWSリソースのアクセス権限)が設定可能

IAMで利用される認証情報

  • アクセスキーID/シークレットアクセスキー(REST、Query形式のAPIで利用)
    コンソールから生成出来る。Active/Inactiveが切り替えできる。

  • X.509Certificate(SOAP形式のAPIで利用)
    OpenSSLなどで作った証明書をアップロードする。

  • AWSコンソールのログインパスワード
    デフォルトは未設定。128文字までのBasicな認証。パスワード変更時のポリシーが設定できる。
    IAMユーザーは専用のURLからコンソールにアクセスする。URLはデフォルトではアカウント名を付け足したもの。

  • MFA(多要素認証)
    ハードウェアもしくは仮想MFAを利用。

IAMポリシーの記述

例)アクセス元が176.32.92.49ならば、S3のListBucketsとGetの操作を許可する

{
	"Effect": "Allow",
	"Action": [
		"s3:ListBuckets",
		"s3:Get *"
	],
	"Resouce":[
		"arn:aws:s3:::mybucket"
	],
	"Condition": {
		"IpAdress": {
			"aws:SouceIP":["176.32.92.49/32"]
		}
	}
}

※指定したもの以外を許可する場合は"NotAction"、"NotResouce"をつかう
※"Resouce"はARN(AmazonResouceName)を利用 arn:service:region:account:resouce
ARN詳細(Amazon Resource Names (ARNs) and AWS Service Namespaces - Amazon Web Services
※Resouceに対するActionの許可の条件判定を"Condition"で行う

Conditionの書き方

	"Condition": {
		"IpAdress": {
			"aws:SouceIP":["176.32.92.49/32"]
		}
	}

演算子:{ポリシー変数:条件値}

演算子

  • 文字列
  • 数値
  • 日付・時間
  • ブール値
  • IPアドレス
  • AWSリソース
  • IfExists (演算子に付与。変数が無ければ無視される)
  • 条件キーの有無

変数

  • 全てのリクエストで利用可能な変数

    • aws:CurrentTime
    • aws:EpochTime
    • aws:TokenIssueTime
    • aws:principaltype
    • aws:SecureTransport
    • aws:SouceIp
    • aws:UserAgent
    • aws:usename
  • その他AWSサービス固有の変数もある

ConditionのANDとOR

Conditionの下のブロックはAND、演算子に対する値はOR

"Condition": {
	"DateGreaterThan": {
		"aws:CurrentTime": "2013-07-16T12:00:00Z"
	},
	"DateLessThan": {
		"aws:CurrentTime": "2013-07-16T15:00:00Z"
	},
	"IpAddress": {
		"aws:SouceIp": ["192.168.176.0/24","192.168.143.0/24"]
	}
}

「2013/7/16の12:00から15:00の間に、ソース
IP192.168.176.0/24もしくは192.168.143.0/24のネットワークからアクセス
したリクエスト」

サポートと請求画面に対してもアクセスポリシーを指定できる

設定手順

  • ルートアカウントからセキュリティ質問を設定
  • 費用請求画面へのアクセス
  • IAMユーザーに"aws-portal"のアクション追加

アクセス可否のロジック

  • アクセス制御条件は複数指定可能
  • 全てのアクセスはデフォルトで不可
    デフォルトでDeny>>Allow>>条件に"Deny"を明示 この順で適用される

IAMポリシーのテスト

IAM Policy Simulator

リソースベースのポリシー

S3バケット、SQSのキューなどAWSリソースに対してもポリシーの設定が可能

ユースケース|AWSアカウントを超えたアクセスの許可

{
	"Statement": {
		"Effect": "Allow",
		"Principal": {
			"AWS": "arn:aws:iam::AccountBの番号:root"
	},
	"Action": "s3:*",
	"Resouce": "arn:aws:s3:::mybucket/*"
}

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?