2017-01-12 1 views
1

Ich habe ein Servicekatalog-Portfolio und ein Produkt erstellt, die es Benutzern ermöglichen, ihre eigenen Qualitätssicherungsumgebungen zu starten. Ich habe einer Auswahl von Benutzern die AWS Managed Policy "ServiceCatalogEndUserFullAccess" (unten) gegeben, damit sie Produkte starten können, jedoch scheinen sie auch individuelle Berechtigungen für die von der Vorlage erstellten Ressourcen zu benötigen (in diesem Fall nur ein EC2 und ELB).Wie können Benutzer EC2-Instanzen nur aus Service Catalog starten?

{ 
"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" 
      } 
     } 
    } 
] 
} 

Als solche nicht die Vorlage in Cloudformation und Rollback mit einem Fehler wie folgt aus:

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

Im Idealfall würde Ich mag die Fähigkeit des Benutzers einzuschränken eine EC2 entweder vom Servicekatalog zu starten nur, oder vielleicht genauer gesagt, unsere VPC-Inszenierung, aber beides scheint aus dem, was ich gerade gelesen habe, nicht möglich zu sein. Gibt es eine Möglichkeit, diese granulare Berechtigungsebene so zu gewähren, dass der Benutzer die Ressourcen nur in dem bestimmten Produkt des Servicekatalogs starten kann, das er ausgewählt hat?

Antwort

1

Ihre Richtlinie hat Benutzern die Berechtigung zu Service Catalog erteilt, aber das ist nicht ausreichend, um ihnen zu ermöglichen, die tatsächlichen Ressourcen zu starten.

Es gibt zwei Möglichkeiten, um Erteilung Erlaubnis Ressourcen zu starten (zB Amazon EC2):

  • Erteilen von Berechtigungen für die IAM Benutzer selbst oder
  • zuweisen Rollen Starten auf dem Launch Constraint für das Produkt

Von Applying a Launch Constraint Dokumentation:

Ohne eine Startbeschränkung müssen Endbenutzer Produkte mit ihren eigenen IAM-Anmeldeinformationen starten und verwalten. Dazu müssen sie über Berechtigungen für AWS CloudFormation, die von den Produkten verwendeten AWS-Services und den AWS-Servicekatalog verfügen. Mithilfe einer Startrolle können Sie stattdessen die Berechtigungen der Endbenutzer auf das erforderliche Minimum beschränken.

Daher erstellen eine Einführung Rolle mit den erforderlichen Berechtigungen eine EC2-Instanz zu starten, aber nur den Benutzern der minimal notwendige Berechtigungen erteilen das Produkt vom Servicekatalog zu starten.

+0

Ausgezeichnete Antwort. Ich bin schließlich darüber gestolpert, aber es war in den Unterlagen nicht so offensichtlich, wie ich es mir gewünscht hätte. Sie haben es deutlich gemacht: Produkte können entweder mit den Berechtigungen des IAM-Benutzers, der sie bereitstellt, gestartet werden, oder Sie können IAM-Rollen als Startbeschränkungen zuweisen, um dem Benutzer außergewöhnliche Privilegien zu gewähren. Für jeden, der dies findet, möchte ich hinzufügen, dass ich den STS AWS CLI-Aufruf 'decode-authorization-message' für den Rest meines anfänglichen Fehlers verwendet habe, um festzustellen, dass der tatsächliche Fehler war, dass ich die IAM: passRole haben musste Berechtigung, meiner Instanz eine IAM-Rolle zuzuweisen. –

Verwandte Themen