本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Service Catalog 啟動限制條件
啟動限制會指定使用者啟動、更新或終止產品時AWS Service Catalog假設的 AWS Identity and Access Management (IAM) 角色。IAM 角色是使用者或AWS服務可暫時假設使用AWS服務的許可集合。有關介紹性示例,請參閱:
-
AWS CloudFormation產品類型:步驟 6:新增啟動限制以指派 IAM 角色
-
地形開源或地形雲產品類型:步驟 5:建立啟動角色
啟動限制適用於產品組合中的產品 (產品組合關聯)。啟動限制不適用於投資組合層級,也不適用於所有產品組合的產品。若要將啟動限制與產品組合中的產品建立關聯,您必須將啟動限制個別套用至每個產品。
如果沒有啟動限制,最終使用者必須使用自己的 IAM 登入資料啟動和管理產品。若要這麼做,他們必須擁有產品所使用之AWS服務和的權限AWS Service Catalog。AWS CloudFormation透過使用啟動角色,您可以將使用者的權限限制在他們對該產品所需的最低限度。如需有關最終使用者權限的詳細資訊,請參閱 AWS Service Catalog中的 Identity and Access Management。
若要建立和指派 IAM 角色,您必須具有下列 IAM 管理許可:
iam:CreateRole
iam:PutRolePolicy
iam:PassRole
iam:Get*
iam:List*
設定啟動角色
您指派給產品做為啟動限制的 IAM 角色必須具有使用下列項目的權限:
適用於雲形產品
-
arn:aws:iam::aws:policy/AWSCloudFormationFullAccess
AWS CloudFormation受管理的策略 -
產品AWS CloudFormation範本中的服務
-
讀取服務擁有的 Amazon S3 儲存貯體中AWS CloudFormation範本的存取權限。
對於地形產品
-
產品的 Amazon S3 模板中的服務
-
讀取服務擁有的 Amazon S3 儲存貯體中 Amazon S3 範本的存取權限。
-
resource-groups:Tag
用於在 Amazon EC2 執行個體中進行標記 (執行佈建操作時由 Terraform 佈建引擎假設) -
resource-groups:CreateGroup
用於資源群組標記 (假設AWS Service Catalog建立資源群組並指派標籤)
IAM 角色的信任政策必須允AWS Service Catalog許擔任該角色。在下列程序中,當您選取AWS Service Catalog作為角色類型時,會自動設定信任原則。如果您未使用主控台,請參閱如何將信任政策與 IAM 角色搭配使用中的角色,為擔任角色的AWS服務建立信任政策
注意
servicecatalog:ProvisionProduct
、servicecatalog:TerminateProvisionedProduct
及 servicecatalog:UpdateProvisionedProduct
權限無法以啟動角色指派。您必須使用 IAM 角色,如授與使用者權限一節中的內嵌政策步驟所示。AWS Service Catalog
注意
若要在AWS Service Catalog主控台中檢視佈建的 Cloudformation 產品和資源,最終使用者需要AWS CloudFormation讀取存取權。在主控台中檢視佈建的產品和資源不會使用啟動角色。
建立啟動角色
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 Terraform 產品需要額外的啟動角色設定。如需詳細資訊,請檢閱 Terraform 開放原始碼產品入門中的步驟 5:建立啟動角色。
-
選擇角色。
-
選擇 Create New Role (建立新角色)。
-
輸入角色名稱,然後選擇 Next Step (下一步)。
-
在旁邊的AWS服務角色下 AWS Service Catalog,選擇選取。
-
在 Attach Policy (連接政策) 頁面上,選擇 Next Step (下一步)。
-
若要建立角色,請選擇 Create Role (建立角色)。
將政策連接到新的角色
-
選取您建立的角色以檢視該角色的詳細資訊頁面。
-
選擇 Permissions (許可) 索引標籤,然後展開 Inline Policies (內嵌政策) 區段。然後,選擇 click here (按一下這裡)。
-
選擇 Custom Policy (自訂政策),然後選擇 Select (選取)。
-
輸入原則的名稱,然後將以下內容貼到 Policy Document (政策文件) 編輯器:
"Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }
注意
為啟動條件約束設定啟動角色時,必須使用以下字串:
"s3:ExistingObjectTag/servicecatalog:provisioning":"true"
。 -
為產品使用的每個其他服務新增一行至原則。例如,若要新增 Amazon 關聯式資料庫服務 (Amazon RDS) 的權限,請在清單最後一行的末尾輸入逗號,然後新增下
Action
列行:"rds:*"
-
選擇 Apply Policy (套用政策)
套用啟動限制
配置啟動角色之後,請將角色指派給產品做為啟動限制。此動作會告知AWS Service Catalog使用者在啟動產品時擔任該角色。
將角色指派至產品
-
在 https://console.aws.amazon.com/servicecatalog/
開啟 Service Catalog 主控台。 -
選擇包含該產品的產品組合。
-
選擇 Constraints (限制) 索引標籤,並選擇 Create constraint (建立限制)。
-
從產品中選擇產品,然後在「限制類型」下選擇「啟動」 選擇 繼續。
-
在「啟動限制」區段中,您可以從帳戶中選取 IAM 角色,然後輸入 IAM 角色 ARN,或輸入角色名稱。
如果您指定角色名稱,並且帳戶使用啟動限制,則該帳戶將使用該名稱作為 IAM 角色。此方法允許啟動角色限制與帳戶無關,因此您可以為每個共用帳戶建立更少的資源。
注意
指定的角色名稱必須存在於建立啟動限制的帳戶,以及使用此啟動限制啟動產品的使用者帳戶中。
-
指定 IAM 角色後,選擇 Create (建立)。
將混淆的代理添加到啟動約束
AWS Service Catalog支援與假設角色要求一起執行的 API 的混淆副保護。新增啟動限制時,您可以使用啟動角色信任原則中的sourceAccount
和sourceArn
條件來限制啟動角色存取。它可確保啟動角色是由受信任的來源呼叫。
在下列範例中,一AWS Service Catalog般使用者屬於帳戶 1111111111。當AWS Service Catalog系統管理員LaunchConstraint
為產品建立時,終端使用者可以在啟動角色信任原則中指定下列條件,將假設角色限制為帳號 1111111111。
"Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:servicecatalog:us-east-1:111111111111:*" }, "StringEquals":{ "aws:SourceAccount":"111111111111" } }
佈建具有產品的使用者LaunchConstraint
必須具有相同的 AccountId
(111111111111)。如果沒有,則作業會失敗並顯示錯AccessDenied
誤,進而防止啟動角色濫用。
以下 AWS Service Catalog API 是保護混淆的副手保護:
-
LaunchConstraint
-
ProvisionProduct
-
UpdateProvisionedProduct
-
TerminateProvisionedProduct
-
ExecuteProvisionedProductServiceAction
-
CreateProvisionedProductPlan
-
ExecuteProvisionedProductPlan
的sourceArn
保護AWS Service Catalog僅支援範本化 ARN,例如 "arn:<aws-partition>:servicecatalog:<region>:<accountId>:
" 它不支援特定的資源 ARN。
驗證啟動限制
若要驗證AWS Service Catalog使用角色啟動產品並成功佈建產品,請從AWS Service Catalog主控台啟動產品。若要在發佈至使用者之前測試限制,請建立包含相同產品的測試產品組合,然後以該產品組合測試限制。
啟動產品
-
在AWS Service Catalog主控台的功能表中,選擇 Service Catalog > 一般使用者。
-
選擇產品以開啟「產品詳細資訊」頁面。在啟動選項表格中,確認角色的 Amazon 資源名稱 (ARN) 出現。
-
選擇「啟動產品」。
-
繼續啟動步驟,填寫任何必要的資訊。
-
確認產品已成功啟動。