JAWS DAYS 2013の横浜支部枠でIAMについて発表した資料です。
Do you use theIAM ?如何にIAMを使いこなすか
View Slide
お前だれよ?• @maroon1st• JAWS-UG 横浜支部コアメンバー• 某メーカー系SIer勤務• アプリケーションエンジニア↓インフラエンジニア• 好きなAWSサービス:RDS、STS(Security Token Service)• 好きなCDP:Bootstrapパターン
みんなIAM使ってる?
通常操作でAWSアカウントを使っては
ダメ。ゼッタイ。
普通の操作をrootでしないのと同じ!
IAMで何ができる?初級編
IAMで何ができる?初級編•個人にIAMユーザを作成。•アカウント共有はしない!
IAMで何ができる?初級編権限は、IAM Groupで。• Developer権限• Operateor権限• 経理/管理者権限• etc.
IAMで何ができる?初級編IAM Groupはユーザ毎に最大10個。グループ権限に工夫が必要。注意
IAMで何ができる?初級編Policy Template とかPolicy Generatorで楽をしよう!http://awspolicygen.s3.amazonaws.com/policygen.html
IAMで何ができる?上級編 その1
IAMで何ができる?上級編 その1社外アクセスの制限はできる?
IAMで何ができる?上級編 その1できます!接続元のIPアドレスでアクセス制御
IAMで何ができる?上級編 その1ConditionのNotIpAddressで設定!{ "Statement": [{ "Effect": "Deny""Deny""Deny""Deny","Action": "*","Resource": "*","Condition": {""""NotIpAddressNotIpAddressNotIpAddressNotIpAddress"""": {"aws:SourceIp":"192.0.2.1" }}}]}
IAMで何ができる?上級編 その1ConditionのNotIpAddressで設定!{ "Statement": [{ "Effect": "Deny""Deny""Deny""Deny","Action": "*","Resource": "*","Condition": {""""NotIpAddressNotIpAddressNotIpAddressNotIpAddress"""": {"aws:SourceIp":"192.0.2.1" }}}]}EffectはDenyConditionはNotIpAddressで設定Allowで設定した場合、別の権限を追加するとアクセスできてしまう。EffectはDenyConditionはNotIpAddressで設定http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Conditions_IPAddress
でも、最近流行の「社内LAN撲滅運動」の前では無意味かな?
IAMで何ができる?上級編 その2
IAMで何ができる?上級編 その2一時的に発行したIAMユーザを消し忘れる。何とかならない?
IAMで何ができる?上級編 その2できます!削除はしないけど有効期限設定が可能
IAMで何ができる?上級編 その2ConditionのCurrentTimeで設定!{ "Statement": [{ "Effect": "Deny""Deny""Deny""Deny","Action": "*","Resource": "*","Condition": {""""DateGreaterThanDateGreaterThanDateGreaterThanDateGreaterThan"""": {""""aws:CurrentTimeaws:CurrentTimeaws:CurrentTimeaws:CurrentTime"""": "2013-03-16T06:00:00Z" }}}]}
IAMで何ができる?上級編 その2ConditionのCurrentTimeで設定!{ "Statement": [{ "Effect": "Deny""Deny""Deny""Deny","Action": "*","Resource": "*","Condition": {""""DateGreaterThanDateGreaterThanDateGreaterThanDateGreaterThan"""": {""""aws:CurrentTimeaws:CurrentTimeaws:CurrentTimeaws:CurrentTime"""": "2013-03-16T06:00:00Z" }}}]}EffectはDenyConditionはDateGreaterThan で設定EffectはDenyConditionはDateGreaterThan で設定基本は"aws:CurrentTime"“aws:EpochTime“でUNIX時間も可能http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Conditions_Date
IAMで何ができる?上級編 その2“aws:CurrentTime”はJSTでも記述可能!ISO 8601形式で"2013-03-16T15:00:00+09:00"http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/SupportedTypes.html
IAMで何ができる?上級編 その3
IAMで何ができる?上級編 その3日々の作業でAWSアカウントを使用したくない!
IAMで何ができる?上級編 その3できます!(多分)AWSサポートもIAMユーザで使用可能
IAMで何ができる?上級編 その3Actionで"support:*"を設定!{ "Statement": [{"Effect": "Allow","Action": """"sopportsopportsopportsopport:*":*":*":*","Resource": "*"}]}http://aws.amazon.com/jp/premiumsupport/iam/
IAMで何ができる?上級編 その3IAMでAWSサポート !!
IAMで何ができる?上級編 その3AWSサポートのレベルはビジネス以上が対応開発者レベルは未対応!注意
まとめ• AWSアカウントは出来る限り使わない• IAMユーザは1人1個で権限を分ける• IAMユーザもアクセス元制限可能• IAMユーザも有効期限が設定可能• IAMには色々な権限がある
IAMはEnterprise向けだけとは限りません。IAMを使いこなしましょう!