禁用AWS S3管理控制台

时间:2020-07-11 06:54:35

标签: amazon-web-services security amazon-s3

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

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

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

2 个答案:

答案 0 :(得分:1)

这是一个棘手的实现,但是以下应该能够满足要求。

仅限程序访问

您需要准确定义应拒绝的操作,不想完全阻止访问,否则您可能会失去执行任何操作的能力。

如果您使用的是AWS,则应使用IAM角色,并使用VPC端点连接到S3服务。两者都支持在S3存储桶存储桶策略中控制访问的功能。

您将使用它拒绝来源为not the VPC endpoint的List *操作。您也可以deny where its not a specific subset of roles

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

还请记住,他们没有访问权限的任何IAM用户/ IAM角色,除非您通过IAM策略明确将其授予他们。

拒绝访问根用户

当使用服务控制策略时,目前只有一种方法可以拒绝对AWS账户的root用户的访问(尽管您应该与任何人共享这些凭证,即使您在公司内部也是如此)。

为此,该帐户需要成为AWS组织的一部分(作为组织单位)。如果/如果是,您将创建一个denies access to the root principal for the specific actions that you want的SCP。

为您提供此政策的一个示例是

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

答案 1 :(得分:1)

是的,可以禁用管理控制台:不为用户提供密码。

创建IAM用户时,有两种提供凭据的方法:

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

仅向用户提供访问密钥,他们将无法登录控制台。

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

如果您的目标是阻止任何人访问客户文件,则可以在存储桶中添加Deny上带有s3:*的存储桶策略,其中委托人不是客户。

但是请注意,Root登录可以删除此类策略。

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