本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 5:建立啟動角色
在此步驟中,您將建立 IAM 角色 (啟動角色),指定 Terraform 佈建引擎的權限,並在使用者啟動 Terraform 產品時AWS Service Catalog可承擔的 HashiCorp 權限。
稍後指派給簡單 Amazon S3 儲存貯體 Terraform 產品做為啟動限制的 IAM 角色 (啟動角色) 必須具有下列許可:
-
存取您的 Terraform 產品的基礎AWS資源。在本教學課程中,這包括對
s3:CreateBucket*
、s3:DeleteBucket*
s3:Get*
s3:List*
、和s3:PutBucketTagging
Amazon S3 操作的存取。 -
讀取AWS Service Catalog擁有的 Amazon S3 儲存貯體中 Amazon S3 範本的存取權
-
存取
CreateGroup
、ListGroupResources
DeleteGroup
、和Tag
資源群組作業。這些作業AWS Service Catalog可用來管理資源群組和標記
若要在AWS Service Catalog系統管理員帳戶中建立啟動角色
-
登入AWS Service Catalog管理員帳戶後,請遵循 IAM 使用者指南中「在 JSON」索引標籤上建立新政策的指示。
-
為您的簡單 Amazon S3 儲存貯體 Terraform 產品建立政策。在您建立啟動角色之前,必須先建立此原則,並包含下列權限:
-
s3
— 允許AWS Service Catalog列出、讀取、寫入、佈建和標記 Amazon S3 產品的完整許可。 -
s3
— 允許存取擁有的 Amazon S3 儲存貯體AWS Service Catalog。若要部署產品,AWS Service Catalog需要存取佈建人工因素。 -
resourcegroups
— 允AWS Service Catalog許創建,列出,刪除和標記AWS Resource Groups。 -
tag
— 允許AWS Service Catalog標記權限。
注意
根據您要部署的基礎資源,您可能需要修改範例 JSON 政策。
貼上下列 JSON 政策文件:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/servicecatalog:provisioning": "true" } } }, { "Action": [ "s3:CreateBucket*", "s3:DeleteBucket*", "s3:Get*", "s3:List*", "s3:PutBucketTagging" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Action": [ "resource-groups:CreateGroup", "resource-groups:ListGroupResources", "resource-groups:DeleteGroup", "resource-groups:Tag" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "tag:GetResources", "tag:GetTagKeys", "tag:GetTagValues", "tag:TagResources", "tag:UntagResources" ], "Resource": "*", "Effect": "Allow" } ] }
-
-
-
選擇下一步,標籤。
-
選擇下一步,檢閱。
-
在 [檢閱原則] 頁面中,針對 [名稱] 輸入
S3ResourceCreationAndArtifactAccessPolicy
。 -
選擇建立政策。
-
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
針對 [選取受信任的實體],選擇 [自訂信任原則],然後輸入下列 JSON 原則:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GivePermissionsToServiceCatalog", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id:root" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::accounti_id:role/TerraformEngine/TerraformExecutionRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogExternalParameterParserRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogTerraformOSParameterParserRole*" ] } } } ] }
-
選擇下一步。
-
在「策略」清單中,選取
S3ResourceCreationAndArtifactAccessPolicy
您剛建立的。 -
選擇下一步。
-
在角色名稱中,輸入
SCLaunch-S3product
。重要
啟動角色名稱必須以「SCLaunch」開頭,後面接著所需的角色名稱。
-
選擇建立角色。
重要
在AWS Service Catalog系統管理員帳戶中建立啟動角色之後,您也必須在使用者帳戶中建立相同的AWS Service Catalog啟動角色。一般使用者帳戶中的角色必須具有相同的名稱,並且包含與系統管理員帳戶中角色相同的策略。
在一AWS Service Catalog般使用者帳戶中建立啟動角色
-
以系統管理員身分登入使用者帳戶,然後依照 IAM 使用者指南中的 JSON 索引標籤上建立新政策的指示進行操作。
-
重複上述在AWS Service Catalog管理員帳戶中建立啟動角色的步驟 2-10。
注意
在使用AWS Service Catalog者帳戶中建立啟動角色時,請務必在自訂信任原則AccountId
中使用相同的系統管理員。
既然您已在管理員帳戶和一般使用者帳戶中建立啟動角色,您可以將啟動限制新增至產品。