【问题标题】:Disable AWS S3 Management Console禁用 AWS S3 管理控制台
【发布时间】:2020-10-31 21:26:55
【问题描述】:

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

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

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

【问题讨论】:

  • 是的,这两件事都是可能的。 AWS 中几乎所有功能都可以通过权限系统进行控制。

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


【解决方案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 账户的根用户(尽管您应该与任何人共享这些凭证,即使是在您的公司内部),因为这是使用服务控制策略。

为此,账户需要是 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"
          ]
        }
      }
    }
  ]
}

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多