AWS IAM 仅授予用户对特定 VPC 的读取权限
AWS IAM grant user read access to specific VPC only
我已经尝试 limit access to a VPC 但没有成功。也许从另一边解决问题是个更好的主意,但我也无法做到这一点。
我试过:
受标签限制 如图所示here:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/client": "<client>"
}
}
}
]
}
VPC 限制 建议here:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1508450090000",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": [
"arn:aws:ec2:<region>:<account>:subnet/*"
],
"Condition": {
"StringEquals": {
"ec2:Vpc": "arn:aws:ec2:<region>:<account>:vpc/<vpc_id>"
}
}
}
]
}
这两种策略都导致甚至不列出任何实例,请参见屏幕截图。
这对我来说似乎是一个非常明显且普遍需要的政策。
任何帮助表示赞赏。
根据文档:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_IAM.html#readonlyvpciam
The following policy grants users permission to list your VPCs and
their components. They can't create, update, or delete them.
{
"Version": "2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":["ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"ec2:DescribeInternetGateways",
"ec2:DescribeEgressOnlyInternetGateways",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeNatGateways",
"ec2:DescribeCustomerGateways",
"ec2:DescribeVpnGateways",
"ec2:DescribeVpnConnections",
"ec2:DescribeRouteTables",
"ec2:DescribeAddresses",
"ec2:DescribeSecurityGroups",
"ec2:DescribeNetworkAcls",
"ec2:DescribeDhcpOptions",
"ec2:DescribeTags",
"ec2:DescribeInstances"],
"Resource":"*"
}
]
}
此外,如果您有多个 VPC,您甚至不想让它们看到,也许您应该考虑创建一个子账户,只包含它们应该在其中可见的网络部分:
- 设置整合账单
第一步,登录您的 AWS 账户并单击 "Sign up for Consolidated Billing" 按钮。
- 创建一个新帐户
在未登录的浏览器中,您需要像这样再次注册 AWS:
为这个新帐户指定适合您客户的名称。请记下您注册时使用的电子邮件地址。
- Link 帐户
在您的主帐户中,返回到 ConsolidatedBilling 并单击“发送请求”按钮。为您的新子帐户提供电子邮件地址。
您应该会收到一封电子邮件到您的新子帐户的电子邮件地址。复制激活link并粘贴到您登录子账户的浏览器中。
您的帐户现已 linked!
- 创建您的客户端 VPC 并启用客户端所需的服务。
接下来,您可以创建客户端需要的VPC和服务,并通过上面的策略限制他们的访问。
您不能以您想要的方式限制 Describe*
调用。
可以限制 create 资源的调用(例如授予在特定 VPC 中启动实例的权限),但调用 list无法限制资源。
如果您需要能够阻止某些用户列出资源,那么您要么需要构建自己的前端,以便在将信息呈现给用户之前对其进行过滤,或者使用多个 AWS 账户,因为它们彼此完全隔离。
我已经尝试 limit access to a VPC 但没有成功。也许从另一边解决问题是个更好的主意,但我也无法做到这一点。
我试过:
受标签限制 如图所示here:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/client": "<client>"
}
}
}
]
}
VPC 限制 建议here:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1508450090000",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": [
"arn:aws:ec2:<region>:<account>:subnet/*"
],
"Condition": {
"StringEquals": {
"ec2:Vpc": "arn:aws:ec2:<region>:<account>:vpc/<vpc_id>"
}
}
}
]
}
这两种策略都导致甚至不列出任何实例,请参见屏幕截图。
这对我来说似乎是一个非常明显且普遍需要的政策。 任何帮助表示赞赏。
根据文档:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_IAM.html#readonlyvpciam
The following policy grants users permission to list your VPCs and their components. They can't create, update, or delete them.
{
"Version": "2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":["ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"ec2:DescribeInternetGateways",
"ec2:DescribeEgressOnlyInternetGateways",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeNatGateways",
"ec2:DescribeCustomerGateways",
"ec2:DescribeVpnGateways",
"ec2:DescribeVpnConnections",
"ec2:DescribeRouteTables",
"ec2:DescribeAddresses",
"ec2:DescribeSecurityGroups",
"ec2:DescribeNetworkAcls",
"ec2:DescribeDhcpOptions",
"ec2:DescribeTags",
"ec2:DescribeInstances"],
"Resource":"*"
}
]
}
此外,如果您有多个 VPC,您甚至不想让它们看到,也许您应该考虑创建一个子账户,只包含它们应该在其中可见的网络部分:
- 设置整合账单
第一步,登录您的 AWS 账户并单击 "Sign up for Consolidated Billing" 按钮。
- 创建一个新帐户
在未登录的浏览器中,您需要像这样再次注册 AWS:
为这个新帐户指定适合您客户的名称。请记下您注册时使用的电子邮件地址。
- Link 帐户
在您的主帐户中,返回到 ConsolidatedBilling 并单击“发送请求”按钮。为您的新子帐户提供电子邮件地址。
您应该会收到一封电子邮件到您的新子帐户的电子邮件地址。复制激活link并粘贴到您登录子账户的浏览器中。
您的帐户现已 linked!
- 创建您的客户端 VPC 并启用客户端所需的服务。
接下来,您可以创建客户端需要的VPC和服务,并通过上面的策略限制他们的访问。
您不能以您想要的方式限制 Describe*
调用。
可以限制 create 资源的调用(例如授予在特定 VPC 中启动实例的权限),但调用 list无法限制资源。
如果您需要能够阻止某些用户列出资源,那么您要么需要构建自己的前端,以便在将信息呈现给用户之前对其进行过滤,或者使用多个 AWS 账户,因为它们彼此完全隔离。