标签: amazon-web-services

AWS - 从 sudo 列表中删除 ec2-user

我正在运行一个生产级 Amazon ec2 实例,我想关闭所有用户的 root 权限。通常,当以 ec2-user 身份登录实例时,ec2-user 会立即获得 sudo 权限,我试图取消该权限以确保安全。

我能够为 root 用户设置一个新密码,我进入 /etc/sudoers 尝试从 sudo 权限中删除 ec2-user,但该用户甚至没有列在文件中。有人知道如何从运行默认 linux 安装的 Amazon ec2 实例上的 sudo 权限中删除 ec2-user 吗?

root sudo amazon-web-services

16
推荐指数
1
解决办法
6005
查看次数

备份存储在 Amazon S3 上的数据

我有一个运行 Web 服务器的 EC2 实例,该服务器将用户上传的文件存储到 S3。这些文件被写入一次并且永远不会改变,但偶尔会被用户检索。我们每年可能会积累大约 200-500GB 的数据。我们希望确保这些数据是安全的,尤其是不会被意外删除,并且希望能够恢复被删除的文件,无论出于何种原因。

我已经阅读了 S3 存储桶的版本控制功能,但我似乎无法找到是否可以恢复没有修改历史记录的文件。有关版本控制,请参阅此处的 AWS 文档:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

在这些示例中,它们没有显示上传数据但从未修改然后删除的场景。在这种情况下删除的文件是否可以恢复?

然后,我们认为我们可以使用对象生命周期管理将 S3 文件备份到 Glacier:

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

但是,这似乎对我们不起作用,因为文件对象没有复制到 Glacier 而是移动到 Glacier(更准确地说,它似乎是一个对象属性已更改,但无论如何......)。

因此,似乎没有直接的方法来备份 S3 数据,并且将数据从 S3 传输到本地服务器可能非常耗时,并且随着时间的推移可能会产生大量的传输成本。

最后,我们想我们会每个月创建一个新的bucket作为每月的完整备份,并在第1天将原始bucket的数据复制到新的bucket中。然后使用类似duplicity的东西(http://duplicity.nongnu.org/ ) 我们每晚都会同步备份桶。在月底,我们会将备份存储桶的内容放入 Glacier 存储中,并使用原始存储桶的新的当前副本创建一个新的备份存储桶……并重复此过程。这似乎可以工作并最大限度地降低存储/传输成本,但我不确定双重性是否允许直接进行存储桶到存储桶的传输,而无需先将数据传输到控制客户端。

所以,我想这里有几个问题。首先,S3 版本控制是否允许恢复从未修改过的文件?有什么方法可以将文件从 S3“复制”到我错过的 Glacier?duplicity 或任何其他工具可以直接在 S3 存储桶之间传输文件以避免传输成本吗?最后,我在备份 S3 数据的方法上是否离谱?

提前感谢您提供的任何见解!

更新

亚马逊最近宣布版本控制现在适用于生命周期规则

backup amazon-s3 amazon-web-services

16
推荐指数
1
解决办法
9613
查看次数

使用 IAM 允许用户编辑 AWS / EC2 安全组?

我正在尝试授予 IAM 组编辑我们的 EC2 安全组的能力,但如果不授予对 EC2 中所有内容的访问权限,我就无法使其正常工作。

我已经尝试了几个版本:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1392336685000",
      "Effect": "Allow",
      "Action": [
        "ec2:*"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:<MYACCOUNTHERE>:security-group/*"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是当我使用 IAM 用户登录时,我在安全组页面中收到一条消息,提示“您无权执行此操作”。

我确实知道用户/组正在工作,因为如果我为“Amazon EC2 Full Access”选择 IAM 策略模板,则用户可以访问 EC2 中的所有内容。

我显然对 IAM 没有很多经验,任何帮助将不胜感激。

amazon-ec2 amazon-web-services amazon-iam

16
推荐指数
2
解决办法
2万
查看次数

AWS EC2 什么是预留 ID,它代表什么?

我制作了一个脚本来创建我们的 EC2 卷的快照。该脚本查看哪些实例正在运行,哪些卷连接到这些实例,然后为这些卷创建快照,忽略其余的。

使用describe-instances,我获得了预订 ID,而不是实例 ID。这令人困惑,但事实就是如此。当一个实例启动时,会为该实例创建一个预留。

我仍然对预订概念感到困惑。

旁注:我知道什么是保留实例,这与我在这里描述的不同。“预留实例”意味着您将实例租用一年或两年或三年,并因此获得降价。所以你预留了一年的t2.medium,如果你不使用它,你仍然需要付费,但如果你使用它,它比正常的便宜。

现在回到“预订 ID”。AWS 常见问题解答说:

EC2 启动的每个实例都有一个预留 ID。预留 ID 与实例启动请求是一对一的关系,但如果您使用同一个启动请求启动多个实例,则可以与多个实例相关联。

然后是这个 SE 问题:Amazon EC2 中“预订”的目的是什么

目前尚不清楚预订 ID 究竟代表什么

如果您一次启动一个实例,每个实例都有自己唯一的预留 ID。

  • 何时或如何将单个预留 ID 链接到多个实例?
  • 它可以链接到几个不相关的实例吗?假设我有一个网络服务器和一个数据库服务器。我可以使用一个预订 ID 启动它们吗?
  • 或者,一个预留 ID 是否可以只链接到一个多次启动的实例,例如用于负载平衡目的。

在我们的情况下,所有实例都有一个唯一的预留 ID,但我想知道在什么情况下这可以改变,对于我使用describe-instances.

snapshot amazon-ec2 amazon-web-services

16
推荐指数
1
解决办法
1万
查看次数

MySQL 的安装在 Ubuntu 16.04 上挂起

我正在尝试使用以下方法在 Ubuntu 16.04 上安装 MySQL 服务器:

sudo apt-get install mysql-server
Run Code Online (Sandbox Code Playgroud)

我被要求设置并确认 root 密码,然后安装挂起:

Renaming removed key_buffer and myisam-recover options (if present)
Run Code Online (Sandbox Code Playgroud)

我已经退出安装并清除 MySQL 并再次尝试,但问题仍然存在。

mysql ubuntu amazon-ec2 amazon-web-services ubuntu-16.04

16
推荐指数
2
解决办法
1万
查看次数

临时存储有什么用?

我一直在阅读有关 amazon ec2 的临时存储的信息,并试图找出使用他们为您提供的 100 多 GB 的最佳方式。如果它不持久,它有什么好处?

storage amazon-ec2 amazon-web-services

15
推荐指数
1
解决办法
2万
查看次数

Amazon ELB 使用什么算法来平衡负载?

我在官方 ELB 文档中找到了这个

默认情况下,负载均衡器将每个请求独立地路由到负载最小的应用程序实例。

但是Newvem上的一篇文章说ELB只支持Round Robin算法

Amazon ELB 支持的算法- 目前 Amazon ELB 仅支持 Round Robin (RR) 和 Session Sticky Algorithms。

那么是哪一个呢?

[1] http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html

[2] http://www.newvem.com/dissecting-amazon-elastic-load-balancer-elb-18-facts-you-should-know/?lead_source=popup_ebook&oid=00DD0000000lsYR&email=muneeb%40olacabs.com

load-balancing amazon-web-services amazon-elb

15
推荐指数
1
解决办法
3万
查看次数

在 cloudformation 中是否可以创建可重用的字符串?

我有一个字符串,它由许多变量组成,我将这些变量用于许多不同的事物,例如标签和主机名。

有没有办法创建一个可重用的字符串,我可以通过模板引用它?

对此的任何想法将不胜感激。编辑:一个例子是传入 2 个参数,例如 ProjectName 和 Environment 加入它们

"Fn::Join" : [ "-", [ {"Ref":"ProjectName"}, {"Ref":"Environment"} ] ]
Run Code Online (Sandbox Code Playgroud)

并在许多地方使用结果

amazon-web-services amazon-cloudformation

15
推荐指数
1
解决办法
1万
查看次数

EC2 linux 任何和所有新贵工作都返回“无法识别的服务”

将一些新贵工作从 Ubuntu 迁移到 EC2 Linux (ElasticBeanstalk) 是一场噩梦

我什至无法完成最基本的任务。我正在使用下面的脚本,它在 Ubuntu 上运行良好,但是当我尝试在 EC2 Linux 中启动它时返回非常无用的“无法识别的服务”。我读过这通常是一个语法错误,但如果这对于 Ubuntu 来说在语法上是正确的,则不会出现这种错误。非常感谢任何帮助,我只需要任何工作示例。

这是在以 root 用户身份创建的 /etc/init/test.conf 中。

安慰:

# sudo service test start
# test: unrecognized service
Run Code Online (Sandbox Code Playgroud)

/etc/init/test.conf:

description "test"

start on startup

script
  echo $(ping -c 1 serverfault.com) > /var/log/testjob.log
end script
Run Code Online (Sandbox Code Playgroud)

upstart amazon-ec2 amazon-web-services

15
推荐指数
1
解决办法
1万
查看次数

运行 apt-get upgrade 后如何避免 GRUB 错误 - Ubuntu

我在 EC2 上运行 ubuntu 14.04。

运行后 apt-get upgrade,系统会提示我重新安装 GRUB 引导加载程序的屏幕

GRUB 引导加载程序以前安装到不再存在的磁盘上,或者由于某种原因其唯一标识符已更改。确保安装的 GRUB 核心映像与 GRUB 模块和 grub.cfg 保持同步很重要。请再次检查以确保 GRUB 已写入适当的引导设备。

  • 我怎么知道我应该选择哪个设备?

  • 如果我在我的机器上安装了一些额外的 EBS,我是否也应该选择它们?

  • 我可以在升级过程中避免此提示或为命令提供一些默认值吗?

下面的提示是

新版本的/boot/grub/menu.lst 可用,但当前安装的版本已在本地修改。

  1. 安装包维护者的版本
  2. 保持当前安装的本地版本
  3. 显示版本之间的差异
  4. 显示版本之间的并排差异
  5. 显示可用版本之间的三向差异
  6. 在可用版本之间进行 3 向合并(实验性)
  7. 启动一个新的shell来检查情况

同样的问题在这里:

  • 我怎么知道我应该选择哪一个?

  • 我可以在升级过程中避免此提示或为命令提供一些默认值吗?

linux amazon-ec2 amazon-web-services ubuntu-14.04

15
推荐指数
2
解决办法
2万
查看次数