禁用AWS S3管理控制台



是否可以出于安全原因禁用AWS S3管理控制台?

我们不希望包括root/admin用户在内的任何人直接从AWS S3访问客户文件。我们应该只对存储在S3中的文件进行编程访问。

如果这不可能,是否可以停止为所有用户列出bucket中的目录?

这是一个很难实现的问题,但是以下内容应该能够满足要求。

仅限编程访问

您需要明确定义哪些操作应该被拒绝—您不希望完全阻止访问—否则您可能会失去执行任何操作的能力。

如果你在AWS,你应该使用IAM角色和VPC端点来连接S3服务。这两者都支持在S3 Bucket Bucket Policy中控制访问的能力。

如果源不是VPC端点,则可以使用此选项来拒绝List*操作。你也可以否认它不是一个特定的角色子集。

这适用于所有编程用例,也适用于从控制台以IAM用户身份登录的用户,但这不会拒绝root用户的访问。

还要记住,对于任何IAM用户/IAM角色,除非您通过IAM策略明确授予他们访问权限,否则他们无权访问。

拒绝访问根用户

目前只有一种方法可以拒绝AWS帐户的根用户访问(尽管你应该与任何人共享这些凭据,即使是在你的公司内部(,因为那就是使用服务控制策略。

要做到这一点,该账户需要成为AWS组织的一部分(作为一个组织单元(。如果是/一旦是,您将创建一个SCP,拒绝访问root主体以执行您想要的特定操作。

就是这种政策的一个例子

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RestrictS3ForRoot",
"Effect": "Deny",
"Action": [
"s3:List*"
],
"Resource": [
"*"
],
"Condition": {
"StringLike": {
"aws:PrincipalArn": [
"arn:aws:iam::*:root"
]
}
}
}
]
}

是的,可以禁用管理控制台:不要给用户密码

创建IAM用户时,有两种方式可以提供凭据:

  • 登录凭据(用于控制台(
  • 访问密钥(用于API调用(

只给用户一个访问密钥,他们将无法登录到控制台。

但是,请注意,当使用管理控制台时,用户具有与使用访问密钥完全相同的权限。因此,如果他们可以在控制台中完成,那么他们可以通过API调用完成(如果他们有访问密钥(。

如果您的目标是防止任何人访问客户文件,那么您可以为Bucket添加s3:*上带有Deny的Bucket Policy,其中Principal不是客户。

但是,请注意,Root登录可以删除这样的策略。

如果客户真的想将自己的数据保密,那么他们需要创建自己的AWS帐户并将文件保存在其中,而无需授予您访问权限。

最新更新