如何允许用户仅从Service Catalog启动EC2实例?

时间:2017-01-12 16:19:48

标签: amazon-web-services amazon-ec2 amazon-iam

我创建了一个服务目录产品组合和产品,旨在让用户启动自己的质量保证环境。我已经为AWS Managed Policy" ServiceCatalogEndUserFullAccess"提供了一系列用户。 (下图)所以他们可以推出产品,但是他们似乎也需要对模板创建的资源(在这种情况下只是EC2和ELB)的个人权限。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "catalog-user:*",
            "cloudformation:CreateStack",
            "cloudformation:DeleteStack",
            "cloudformation:DescribeStackEvents",
            "cloudformation:DescribeStacks",
            "cloudformation:GetTemplateSummary",
            "cloudformation:SetStackPolicy",
            "cloudformation:ValidateTemplate",
            "cloudformation:UpdateStack",
            "servicecatalog:DescribeProduct",
            "servicecatalog:DescribeProductView",
            "servicecatalog:DescribeProvisioningParameters",
            "servicecatalog:ListLaunchPaths",
            "servicecatalog:ProvisionProduct",
            "servicecatalog:SearchProducts",
            "s3:GetObject"
        ],
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "servicecatalog:DescribeRecord",
            "servicecatalog:ListRecordHistory",
            "servicecatalog:ScanProvisionedProducts",
            "servicecatalog:TerminateProvisionedProduct",
            "servicecatalog:UpdateProvisionedProduct"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "servicecatalog:userLevel": "self"
            }
        }
    }
]
}

因此,模板在CloudFormation中失败并回滚时出现如下错误:

API:ec2:runInstances - You are not authorized to perform this operation.

理想情况下,我想限制用户仅从服务目录启动EC2的能力,或者更具体地说是我们的暂存VPC,但似乎无法从我目前读取的内容中看到。有没有办法授予此级别的细化权限,以便用户只能在他们选择的特定服务目录产品中启动资源?

1 个答案:

答案 0 :(得分:2)

您的策略已授予用户使用服务目录的权限,但这不足以允许他们启动实际资源。

授予启动资源的权限有两种方式(例如Amazon EC2):

  • 授予 IAM用户本身或
  • 的权限
  • 启动角色分配给产品的启动约束

来自Applying a Launch Constraint文档:

  

如果没有启动限制,最终用户必须使用自己的IAM凭据启动和管理产品。为此,他们必须拥有AWS CloudFormation,产品使用的AWS服务和AWS Service Catalog的权限。通过使用启动角色,您可以将最终用户的权限限制为所需的最低权限。

因此,创建具有启动EC2实例所需权限的启动角色,但仅授予用户从服务目录启动产品所需的最低权限。

相关问题