Articles of amazon web services

Amazon AWS IAM策略基于一天的时间

IAM服务是Amazon AWS允许基于date创build策略,如下所述: http://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Condition 这似乎是指根据日历date来允许/拒绝操作。 例如2015年3月1日12:00之后 是否有可能创build一个条件,允许/否定在一天中的时间的基础上采取行动 例如在任何一天的14:00至18:00之间?

Amazon IP不再允许MySQL连接(错误104)

我正在使用Amazon EC2服务器托pipephpmyadmin的组项目。 我们有一个PHP / MySQL网站托pipe在我学校的服务器上,使数据库连接到亚马逊。 最近我的一个小组成员创build了一个脚本,用一堆条目填充我们的数据库,现在当我进入我们组的主页时,有一个(104)错误信息,我们无法连接到数据库。 我不太了解这个问题的具体情况,因为我没有创build脚本,但是我希望得到一些关于问题是什么以及如何解决的build议。 到目前为止,我已经重新启动我的amazon实例,重新启动mysqld,并重新启动我的apache2服务器。 以下是我相信造成的错误。 <?php session_start(); include "connection.php"; /* EXTREMELY HARD CODED XD */ function rand_date($min_date, $max_date) { $min_epoch = strtotime($min_date); $max_epoch = strtotime($max_date); $rand_epoch = rand($min_epoch, $max_epoch); return date('Ymd H:i:s', $rand_epoch); } function generateRandomString($length = 4) { //$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $characters = '1234abcd'; $charactersLength = strlen($characters); $randomString = ''; […]

AWS,Nginx和Django:默认服务器来防止虚假主机string

我们有一个使用AWS的服务器设置,必须满足以下要求: 1:必须允许源自负载平衡器的传入请求(具体来说,运行状况检查和延迟检查)到达Web服务器。 2:必须允许包含正确Hoststring的有效请求到达Web服务器。 3:所有其他的请求必须被拒绝,非标准的Nginx'444'拒绝,这意味着它们将被忽略。 另外,我们的网站有几个子域,每个子域对不同的客户端运行基本相同的代码。 我们设置Nginx将所有httpstream量redirect到这些子域名到https。 我将调用这些子域名“a.example.com”,“b.example.com”和“c.example.com”。 我们已经注意到,在我们的日志中,我们的Django代码由于虚假的主机string超过了Nginx而返回了大量的500个错误。 我们看到的每个请求的主机string是“* .example.com”,它匹配我们的任何一个子域,因此使它成为Django代码。 由于该主机string无法识别,Django返回500错误。 以下是我们的Nginx站点可用文件的近似近似值: # Repeat this for each subdomain: server { server_name a.example.com; listen 80; return 301 https://a.example.com$request_uri; } server { server_name a.example.com; listen 443; location / { set $my_host $host; if ($host ~ "\d+\.\d+\.\d+\.\d+") { set $my_host "elb.example.com"; } } } 我们试图在Nginx中使用下面的“黑洞”服务器定义来捕获这个错误的主机string: server { server_name […]

PHP的内部服务器不可见外部从亚马逊aws

我正在做一些安全性几乎为零的服务器上的testing。 对于这些testing,我想使用从5.4版本内部提供的php服务器。 但是,在亚马逊AWS绑定的端口不能从外部访问(挂起连接..): $ php -S 10.138.XXX.XXX:81 -t ~/webapps/ssh PHP 5.4.37 Development Server started at Fri Feb 20 23:22:12 2015 现在我们可以访问该地区的php服务器了: wget 10.138.XXX.XXX:81/webconsole.php 但是,当尝试远程访问连接挂起/超时 以下是仅在本地主机上可见的端口 – 而非外部: $ netstat -an | grep 81 #81 is the php port number tcp 0 0 10.138.xxx.xxx:YY 0.0.0.0:* LISTEN 作为一个反例,我们来看一下Jetty服务器端口,这个端口在外部是可见的: 这是一个可见的外部端口8080: root@ip-10-138-XXX-XXX ~]$ netstat -an | grep 8080 tcp […]

如何实现没有SUPER权限的表安全?

一个主要的基于云的MySQL提供者不会授予主用户的SUPER权限。 提供商是Amazon RDS,但是我的问题不是专门针对Amazon RDS,而是数据库所有者/pipe理员不具备SUPER权限的一般情况。 缺lessSUPER特权意味着在创build存储过程时不能使用DEFINER子句。 这反过来又意味着,您无法将表locking为给定用户无法访问,同时通过存储过程授予相同的用户间接访问权限。 如果没有SUPER,是否有另外一种方法来实现同样的“不直接访问”安全策略?

如何更改RDS用户的权限?

我们已经在AWS上创build了一个名为“lolbob”的MySQL RDS实例,并使用在实例创build期间创build的用户(也称为“lolbob”)通过端口3306转储数据,但由于我们有一些存储过程需要SUPER权限在MySQL中。 在search了一下之后,我们得出结论:这个已知问题(TM)的推荐解决scheme是 将log_bin_trust_function_creators参数添加到用于实例的数据库参数组 ,并应用/重新引导实例。 使用SSHlogin到实例本身,并使用rdsadmin用户的命令行中的mysql客户端程序将SUPER权限授予默认实例db用户。 有一个特殊的rdsadmin用户,因为安全原因,所有的权限只能从本地主机访问,否则我们可以使用它。 现在我通常是命令行的粉丝,但这应该是2015年的PaaS云吗? 所以问题是(你可能已经猜到了),我们怎么才能让我们的新实例的默认用户在默认情况下拥有MySQL的SUPER权限? 如果这是不可能的,下一个最好的事情是什么? 例如,有可能以某种方式从AWS控制台更改该用户的设置? 除了必须使用SSHlogin并使用命令行的mysql客户端程序之外的任何东西!

Amazon ELB + EC2标题不匹配

前言: 我在单个Amazon EC2实例前面有一个AWS Elastic Load Balancer。 我有3个其他EC2实例通过curl向负载均衡器发送请求。 对EC2 ip的直接请求具有稳定的响应时间和可接受的速度。 对ELB的请求平均响应时间更长,但速度并不理想。 我的观察结果几乎与此相同: https : //forums.aws.amazon.com/thread.jspa?messageID=419138 "ELB's backend requests to the EC2 instance expect to be on HTTP 1.1 keep-alive connections. The instance/server needs to either support keep-alive connections OR explicitly return response headers to ELB that note the connection is closed. Not returning that header and […]

定制实例存储Centos7 AMI

我试图定制一个基本的实例存储Centos7 AMI。 我使用的图像是:RightImage_CentOS_7.0_x64_v14.1.4_HVM – ami-d34b02e3(实例存储hvm) 我开始实例,我自定义它,我安装所需的工具,执行aws文档中描述的所有内容,上传并注册图像,但图像不能启动。 这个centos7镜像带有grub2,看起来这是一个交易断路器,因为工具需要grub。 这里是完整的步骤: if [ ! -e /tmp/build/rpms/flag ]; then yum install -y /tmp/build/rpms/ec2-ami-tools.noarch.rpm mkdir /usr/local/ec2 unzip -o /tmp/build/rpms/ec2-api-tools.zip -d /usr/local/ec2 mkdir -p grub rm -rf grub/* pushd grub && rpm2cpio /tmp/build/rpms/grub-0.97-93.el6.x86_64.rpm | cpio -idmv && popd cp -a grub/sbin/* /sbin/ cp -a grub/usr/* /usr/ touch /tmp/build/rpms/flag fi export JAVA_HOME="/usr/java/default" […]

无法通过NAT将aws VPC私有实例连接到Internet

试图在VPC私有子网的aws实例上安装LAMP堆栈 使用这里描述的scheme2: http : //docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html 我已经设置了所有的相关子网,安全组,互联网网关和路由表。 随着我的设置,我可以成功: – ping NAT – SSH到NAT – 从NAT ping外部网站(例如ping ietf.org ) – 从NAT的ping私人实例(例如ping 10.0.XX ) – ssh到私人实例 – 从私人实例ping通NAT 但是我不能从私人实例ping到互联网(即ping ietf.org不工作) 当我尝试从私人实例sudo yum update ,我得到以下错误: Cannot find a valid baseurl for repo: amzn-main/latest 我认为这是一个路由或安全组错误…? 笔记: – NAT实例禁用源/目的地检查 – NAT实例具有一个公有IP,但不具有弹性IP – ACL未实现(保留为默认值) – 公共子网路由表: 10.0.XX/XX local 0.0.0.0/0 internet gateway – […]

我可以将本地Microsoft Active Directoryreplace为AWS Directory Service吗?

我们有一个非常基本的AD使用(基本上pipe理用户密码重置),为此我们必须维护一个旧的Windows服务器。 我们的内部用户访问的所有服务都在云端(GMail,Google Drive,Salesforce等),所以既然我们非常依赖互联网连接,在云上也没有问题。 由于无法使用Azure Active Directory( 我可以使用Azure Active Directory来replace域控制器吗? ),我想知道是否可以使用AWS Directory Service 可能吗? 谢谢