aws --profile assume iam get-policy-version --policy-arn POLICY_ARN --version-id v1
右上の「認証情報」メニューからユーザーを選択すると一覧
とても多いので覚えていられない。デフォルトでは何の権限もないとのこと。
「デフォルト設定では、ユーザーは何もできず、そのユーザーのアクセスキーを参照することすらできません。ユーザーに何かの操作をするアクセス権限を付与する場合には、ユーザーにアクセス権限を追加する(つまり、ポリシーをユーザーに関連付ける)か、ユーザーを該当のアクセス権限を持つグループに追加します。」
http://blog.serverworks.co.jp/tech/2014/02/07/iam-ec2/
CloudWatchのAPIを利用するので、「CloudWatch Read Only Access」権限のあるIAM roleをもったインスタンスにしてください。 カスタムメトリックを作成する場合は、CloudWatchの「PutMetricData」を許可するようにします。
http://stk-inc.co.jp/2013/01/aws-cloudwatch-ec2/
ユーザやグループ、ロール、リソースにアクセス許可を割り当てるには、ポリシーを作成します。ポリシーはアクセス許可を明示的にリスト化したドキュメントです。
AWS 管理ポリシーはAWS側が提供しているポリシーでAWS要因で変更される可能性がある。 管理ポリシーとインラインポリシーの違いは、管理ポリシーは複数のエンティティに付与可能。インラインポリシーはその内部のみ。変更管理や複数割り当てができるので管理ポリシーにしておくべし!
AWS Managed Policy | Amazonが管理しているポリシー。勝手に変更される可能性があるが個人レベルの実験ならこれを割り当てておけ! |
Customer Managed Policy | ユーザーが自由に設定できる管理ポリシー |
Inline Policy | 個別で設定するポリシー。共有不可能 |
3つあるが、定義できることに違いはない。 AWS管理ポリシーにはAmazonS3FullAccessなどサービス名FullAccessなど一目見てわかるものが多い。
Effect | AllowかDenyだが、基本Allowしか書かない |
Action | 操作内容。対象:アクションのように記載。S3ならs3:Get*,s3:List* |
Resource | 対象となるリソース。awsの独自表記でS3ならarn:aws:s3:::* |
ユーザーとグループは一般的なものと一緒。ロールはちょっと特殊でEC2インスタンスにアタッチすることによりシークレットキーなしでアクセスできる。
普通にユーザーにIP制限すると、うまくいかない。内部でCloudFomationとか使っていいてIPが違うから。
https://hacknote.jp/archives/43145/
がうまくいかない!
aws cliでassume roleするには以下のコマンドでキーを払い出すことが必要。
aws sts assume-role --role-arn "ロールARN" --role-session-name AWSCLI-Session --profile=limited
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceIPRestriction", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "xxx.xxx.xxx.xxx/32" ] } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::699567825067:user/ONAMAE_LIMITED" }, "Action": "sts:AssumeRole", "Condition": { "IpAddress": { "aws:SourceIp": "157.7.139.75/32" } } } ] }
{ "Version": "2012-10-17", "Statement": [ # ここから { "Sid": "AllowAssumeRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::xxxxxxxxxx:role/AssumedAdministratorAccessRole" }, # ここまで追加 { "Sid": "SourceIPRestriction", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "xxx.xxx.xxx.xxx/32" ] } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRestriction", "Action": [ "ec2:*" ], "Effect": "Deny", "Resource": [ "*" ], "Condition": { "NotIpAddress": { "aws:SourceIp": "58.0.96.28/32" } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Action": "ec2:*", "Effect": "Allow", "Resource": "*" } ] }
上記でEC2に関しては、IP制限がきいた。しかしS3などを追加するとそこはどこのIPからもいけてしまう。