出于安全原因是否可以禁用AWS S3管理控制台?
我们不希望任何人(包括root / admin用户)直接从AWS S3访问客户文件。我们应该可以对存储在S3中的文件进行编程访问。
如果这不可能,是否有可能停止为所有用户列出存储桶中的目录?
答案 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调用(如果具有访问密钥)来执行此操作。
如果您的目标是阻止任何人访问客户文件,则可以在存储桶中添加Deny
上带有s3:*
的存储桶策略,其中委托人不是客户。
但是请注意,Root登录可以删除此类策略。
如果客户确实希望将自己的数据保密,那么他们将需要创建自己的AWS账户并将其文件保存在其中,而无需授予您访问权限。