AWS
IAM
AWS CLI 显示用户策略:
托管策略使用:aws iam list-attached-user-policies --user-name username 显示托管策略,但是只是显示策略名称,不显示具体策略内容
要显示具体的策略内容,方法如下:
1、先查该策略的版本
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
2、通过策略的版本加策略的ARN确认具体内容
aws iam get-policy-version --policy-arn arn:aws:iam::aws:policy/AdministratorAccess --version-id v1
内联策略使用 : aws iam list-user-policies --user-name username 显示内联策略列表
aws iam get-user-policy --user-name username --policy-name policyname 显示具体某一个内联策略内容
EC2
状态检查 分为:系统状态检查、实例状态检查,对于实例状态检查出现实例可达性检查失败,这是由于系统内部的硬盘、内存等超出限制产生的问题或者是底层故障,重启可以解决这些问题,可以参考这个链接:为什么我的 EC2 Linux 实例无法访问,并且一项或多项状态检查失败?
NLB的目标组有2种类型:instance type和ip type。
当目标组是instance type,默认情况下NLB转发的时候不会改写原始客户端的源IP,也就是说后端EC2实例看到的源IP地址会是WAF设备的IP,所以后端EC2实例的安全组入站规则里要允许WAF的IP和NLB本身的IP(健康检查用NLB自己的IP)。
当目标组是ip type,默认情况下NLB转发的时候会把源IP地址改写成NLB自己的IP,所以后端EC2实例看到的源IP地址是NLB的IP,它的安全组入站规则里允许NLB的IP即可。
ELB
ALB
对于获取客户端的源IP地址,可以采用HTTP+PHP的方法,获取相关信息在页面上,配置网页文件为Client IP Address is: <?php printf($_SERVER["HTTP_X_FORWARDED_FOR"]); ?>
,可以获取到客户端地址,如果使用Client IP Address is: <?php printf($_SERVER["REMOTE_ADDR"]); ?>
将获取到ALB私有地址,这是因为ALB 是代理模式,就是nginx 做了一次反向代理,所以 remote addr 是 alb 的 ip 地址,x_forwarded_for 里面是代理前面的地址
NLB
对于NLB获取客户端的源IP地址,配置网页文件为Client IP Address is: <?php printf($_SERVER["REMOTE_ADDR"]); ?>
可以直接获取到客户端地址,如果是配置了X_FORWARDED_FOR
,那网页获取不到任何地址,这是因为NLB是透明代理模式,也就说链接是建立在客户端和 nlb 后端的 ec2 上面,所以 x_forworded_for 的值是空的,remote_addr 的只是客户端的 ip