本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 IAM 角色授予專案 AWS 資源的存取權
CodeCatalyst 可以通過連接到 CodeCatalyst 空間 AWS 帳戶 來訪問 AWS 資源。然後,您可以建立下列服務角色,並在連線帳戶時建立關聯這些角色。
如需有關您在 JSON 政策中使用之元素的詳細資訊,請參閱 IAM 使用者指南中的 IAM JSON 政策元素參考。
-
若要存取 CodeCatalyst 專案和工作流程中的資源,您必須先授與權限, CodeCatalyst 才能代表您存取這些資源。 AWS 帳戶 若要這麼做,您必須在連線的服務角色中建立 AWS 帳戶 CodeCatalyst可代表空間中的使用者和專案承擔的服務角色。您可以選擇建立和使用CodeCatalystWorkflowDevelopmentRole-
spaceName
服務角色,也可以建立自訂服務角色並手動設定這些 IAM 政策和角色。最佳作法是為這些角色指派最少的必要權限。注意
若為自訂服務角色,則需要 CodeCatalyst 服務主體。如需有關 CodeCatalyst 服務主體和信任模型的詳細資訊,請參閱了解 CodeCatalyst 信任模型。
-
若要透過連線來管理空間的支援 AWS 帳戶,您可以選擇建立和使用允許使用 CodeCatalyst 者存取支援的AWSRoleForCodeCatalystSupport服務角色。如需 CodeCatalyst 空間支援的更多資訊,請參閱AWS Support對於 Amazon CodeCatalyst。
了解服CodeCatalystWorkflowDevelopmentRole-spaceName
務角色
您可以為您的空間新增 IAM 角色, CodeCatalyst 以便在已連線中建立和存取資源 AWS 帳戶。這稱為服務角色。建立服務角色的最簡單方法是在建立空間時新增一個角色,並選擇該角色的CodeCatalystWorkflowDevelopmentRole-spaceName
選項。這不僅會建立AdministratorAccess
附加的服務角色,而且還會建立信任原則,以 CodeCatalyst 便代表空間中專案中的使用者承擔角色。服務角色的範圍是空間,而不是個別專案。若要建立角色,請參閱為您的帳戶和空間建立CodeCatalystWorkflowDevelopmentRole-spaceName角色。您只能為每個帳戶中的每個空間建立一個角色。
注意
此角色僅建議與開發帳戶搭配使用,並使用AdministratorAccess
AWS 受管理的策略,讓其具有完整存取權,以便在其中建立新政策和資源 AWS 帳戶。
附加至CodeCatalystWorkflowDevelopmentRole-spaceName
角色的原則旨在處理使用空間中使用藍圖建立的專案。它允許這些項目中的用戶使用連接中的資源開發,構建,測試和部署代碼 AWS 帳戶。如需詳細資訊,請參閱建立 AWS 服務的角色。
附加到CodeCatalystWorkflowDevelopmentRole-spaceName
角色的策略是中的AdministratorAccess
受管理策略 AWS。這是一項政策,可授與所有 AWS 動作和資源的完整存取權。若要在 IAM 主控台中檢視 JSON 政策文件,請參閱AdministratorAccess
下列信任原則 CodeCatalyst 允許CodeCatalystWorkflowDevelopmentRole-spaceName
扮演角色。如需 CodeCatalyst 信任模型的詳細資訊,請參閱了解 CodeCatalyst 信任模型。
"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:codecatalyst:::space/spaceId/project/*" } } } ]
為您的帳戶和空間建立CodeCatalystWorkflowDevelopmentRole-spaceName
角色
請依照下列步驟建立將用於空間中工作流程的CodeCatalystWorkflowDevelopmentRole-
角色。對於要在專案中使用 IAM 角色的每個帳戶,您必須新增一個角色,例如開發人員角色。spaceName
在開始之前,您必須具有您的管理權限, AWS 帳戶 或能夠與您的管理員合作。如需中如何使用 AWS 帳戶 和 IAM 角色的詳細資訊 CodeCatalyst,請參閱允許存取已連線 AWS 的資源 AWS 帳戶。
若要建立並新增 CodeCatalyst CodeCatalystWorkflowDevelopmentRole-spaceName
-
在 CodeCatalyst 主控台中啟動之前,請開啟 AWS Management Console,然後確定您已使用相同 AWS 帳戶 的空間登入。
請在以下位置開啟 CodeCatalyst 主控台。
https://codecatalyst.aws/ -
導覽至您的 CodeCatalyst 空間。選擇 Settings (設定),然後選擇 AWS 帳戶。
-
選擇您要建立角色之 AWS 帳戶 位置的連結。AWS 帳戶 詳細資訊頁面隨即顯示。
-
選擇 [管理角色來源] AWS Management Console。
將 IAM 角色新增至 Amazon CodeCatalyst 空間頁面會在中開啟 AWS Management Console。這是 Amazon CodeCatalyst 空間頁面。您可能需要登錄才能訪問該頁面。
-
選擇在 IAM 中建立 CodeCatalyst 開發管理員角色。此選項會建立包含開發角色之權限原則和信任原則的服務角色。該角色將具有一個名稱
CodeCatalystWorkflowDevelopmentRole-
。如需有關角色和角色原則的詳細資訊,請參閱了解服CodeCatalystWorkflowDevelopmentRole-spaceName務角色。spaceName
注意
此角色僅建議與開發人員帳戶搭配使用,並使用
AdministratorAccess
AWS 受管理的政策,讓其具有完整存取權,以便在其中建立新政策和資源 AWS 帳戶。 -
選擇 [建立開發角色]。
-
在「連線」頁面的「可用的 IAM 角色」下 CodeCatalyst
CodeCatalystWorkflowDevelopmentRole-
,檢視新增至您帳戶的 IAM 角色清單中的角色。spaceName
-
要返回您的空間,請選擇前往 Amazon CodeCatalyst。
了解服AWSRoleForCodeCatalystSupport務角色
您可以為空間新增 IAM 角色,空間中的使用 CodeCatalyst 者可以用來建立和存取支援案例。這稱為支援服務角色。建立支援服務角色的最簡單方法是在建立空間並選擇該角色的AWSRoleForCodeCatalystSupport
選項時新增一個角色。這不僅會建立原則和角色,還會建立信任原則,以 CodeCatalyst 便代表空間中專案中的使用者擔任角色。服務角色的範圍是空間,而不是個別專案。若要建立角色,請參閱為您的帳戶和空間建立AWSRoleForCodeCatalystSupport角色。
附加至AWSRoleForCodeCatalystSupport
角色的原則是受管理的原則,可提供支援權限的存取權。如需詳細資訊,請參閱 AWS 受管政策:AmazonCodeCatalystSupportAccess。
策略的信任角色允 CodeCatalyst 許擔任該角色。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "codecatalyst.amazonaws.com", "codecatalyst-runner.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
為您的帳戶和空間建立AWSRoleForCodeCatalystSupport角色
請依照下列步驟建立將AWSRoleForCodeCatalystSupport
用於您空間中支援案例的角色。角色必須新增至空間的指定帳單帳戶。
在開始之前,您必須具有您的管理權限, AWS 帳戶 或能夠與您的管理員合作。如需中如何使用 AWS 帳戶 和 IAM 角色的詳細資訊 CodeCatalyst,請參閱允許存取已連線 AWS 的資源 AWS 帳戶。
若要建立並新增 CodeCatalyst AWSRoleForCodeCatalystSupport
-
在 CodeCatalyst 主控台中啟動之前,請開啟 AWS Management Console,然後確定您已使用相同 AWS 帳戶 的空間登入。
-
導覽至您的 CodeCatalyst 空間。選擇 Settings (設定),然後選擇 AWS 帳戶。
-
選擇您要建立角色之 AWS 帳戶 位置的連結。AWS 帳戶 詳細資訊頁面隨即顯示。
-
選擇 [管理角色來源] AWS Management Console。
將 IAM 角色新增至 Amazon CodeCatalyst 空間頁面會在中開啟 AWS Management Console。這是 Amazon CodeCatalyst 空間頁面。您可能需要登入才能存取此頁面。
-
在CodeCatalyst 空間詳細資料下,選擇新增 S CodeCatalyst upport 角色。此選項會建立包含預覽開發角色的權限原則和信任原則的服務角色。該角色將具有附加唯AWSRoleForCodeCatalystSupport一標識符的名稱。如需有關角色和角色原則的詳細資訊,請參閱了解服AWSRoleForCodeCatalystSupport務角色。
-
在 [新增 Sup CodeCatalyst port 角色] 頁面上,保持選取的預設值,然後選擇 [建立角色]。
-
在「可用的 IAM 角色」下 CodeCatalyst
CodeCatalystWorkflowDevelopmentRole-
,檢視新增至您帳戶的 IAM 角色清單中的角色。spaceName
-
要返回您的空間,請選擇前往 Amazon CodeCatalyst。
設定工作流程動作的 IAM 角色 CodeCatalyst
本節詳細說明您可以建立以搭配 CodeCatalyst帳戶使用的 IAM 角色和政策。如需建立實例角色的指示,請參閱手動建立工作流程動作的角色。建立 IAM 角色後,請複製角色 ARN 以將 IAM 角色新增至您的帳戶連線,並將其與您的專案環境建立關聯。如需進一步了解,請參閱將IAM角色新增至帳戶連線。
CodeCatalyst 為 Amazon S3 存取建立角色
對於 CodeCatalyst 工作流程建置動作,您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,也可以建立名為 CodeCatalystBuildRoleforS3 Access 的 IAM 角色。此角色使用具有範圍權限的策略,該策略 CodeCatalyst 需要對 AWS CloudFormation . AWS 帳戶
此角色授予執行下列作業的權限:
-
寫入 Amazon S3 存儲桶。
-
Support 資源建設 AWS CloudFormation. 這需要 Amazon S3 訪問。
此角色使用下列原則:
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:PutObject", "iam:PassRole" ], "Resource": "
resource_ARN
", "Effect": "Allow" }] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst 建置角色 AWS CloudFormation
對於 CodeCatalyst 工作流程建置動作,您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,也可以建立具有必要許可的 IAM 角色。此角色使用具有範圍權限的策略,該策略 CodeCatalyst 需要對 AWS CloudFormation . AWS 帳戶
此角色授予執行下列作業的權限:
-
Support 資源建設 AWS CloudFormation. 這是必需的,以及 Amazon S3 存取的 CodeCatalyst建置角色和的 CodeCatalyst 部署角色 AWS CloudFormation。
下列 AWS 受管理的原則應附加至此角色:
-
AWSCloudFormationFullAccess
-
IAM FullAccess
-
亞馬遜 FullAccess
-
亞馬遜 API GatewayAdministrator
-
AWSLambdaFullAccess
CodeCatalyst CDK 的構建角色
對於執行 CDK 建置動作的工作 CodeCatalyst 流程,例如現代三層 Web 應用程式,您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,或者建立具有必要權限的 IAM 角色。此角色使用具有範圍權限的原則, CodeCatalyst 需要針對 AWS CloudFormation . AWS 帳戶
此角色授予執行下列作業的權限:
-
寫入 Amazon S3 存儲桶。
-
Support CDK 構建和 AWS CloudFormation 資源堆棧的構建。這需要存取 Amazon S3 以取得成品儲存、Amazon ECR 以支援映像儲存庫,以及 SSM 以進行虛擬執行個體的系統控管和監控。
此角色使用下列原則:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "ecr:*", "ssm:*", "s3:*", "iam:PassRole", "iam:GetRole", "iam:CreateRole", "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "*" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst 部署角色 AWS CloudFormation
對於使用的工作 CodeCatalyst 流程部署動作 AWS CloudFormation,您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,或者您可以使用具有範圍權限的原則,這些原則 CodeCatalyst 需要在中的 AWS CloudFormation 資源上執行工作。 AWS 帳戶
此角色授予執行下列作業的權限:
-
允許調 CodeCatalyst 用函數以通過 AWS CloudFormation執行藍/綠部署。
-
允許 CodeCatalyst 在中創建和更新堆棧和更改集。 AWS CloudFormation
此角色使用下列原則:
{"Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:Describe*", "cloudformation:UpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "cloudformation:List*", "iam:PassRole" ], "Resource": "
resource_ARN
", "Effect": "Allow" }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst 部署 Amazon EC2 的角色
CodeCatalyst 工作流程部署動作使用具有必要許可的 IAM 角色。此角色使用具有範圍許可 CodeCatalyst 的政策,該政策 Amazon EC2 在您的. AWS 帳戶該CodeCatalystWorkflowDevelopmentRole-spaceName
角色的預設政策不包括適用於 Amazon EC2 或 Amazon EC2 Auto Scaling 的許可。
此角色授予執行下列作業的權限:
-
建立 Amazon EC2 部署。
-
閱讀執行個體上的標籤,或透過 Auto Scaling 群組名稱識別 Amazon EC2 執行個體。
-
讀取、建立、更新和刪除 Amazon EC2 Auto Scaling 群組、生命週期勾點和擴展政策。
-
將資訊發佈到 Amazon SNS 主題。
-
擷取有關 CloudWatch 警報的資訊。
-
讀取並更新 Elastic Load Balancing。
此角色使用下列原則:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CompleteLifecycleAction", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:EnableMetricsCollection", "autoscaling:DescribePolicies", "autoscaling:DescribeScheduledActions", "autoscaling:DescribeNotificationConfigurations", "autoscaling:SuspendProcesses", "autoscaling:ResumeProcesses", "autoscaling:AttachLoadBalancers", "autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:PutScalingPolicy", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:PutNotificationConfiguration", "autoscaling:PutWarmPool", "autoscaling:DescribeScalingActivities", "autoscaling:DeleteAutoScalingGroup", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:TerminateInstances", "tag:GetResources", "sns:Publish", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:DeregisterTargets" ], "Resource": "
resource_ARN
" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst Amazon ECS 的部署角色
對於 CodeCatalyst 工作流程動作,您可以建立具有必要許可的 IAM 角色。您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,也可以為部 CodeCatalyst 署動作建立 IAM 角色,以用於 Lambda 部署。此角色使用具有範圍許可的政策,該政策 CodeCatalyst 需要在您的 Amazon ECS 資源上執行任務。 AWS 帳戶
此角色授予執行下列作業的權限:
-
代表 CodeCatalyst 使用者在 CodeCatalyst 連線中指定的帳戶中啟動滾動 Amazon ECS 部署。
-
讀取、更新和刪除 Amazon ECS 任務集。
-
更新 Elastic Load Balancing 目標群組、監聽器和規則。
-
叫用 Lambda 函數。
-
存取 Amazon S3 儲存貯體中的修訂版檔案。
-
擷取有關 CloudWatch 警報的資訊。
-
將資訊發佈到 Amazon SNS 主題。
此角色使用下列原則:
{ "Version": "2012-10-17", "Statement": [{ "Action":[ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:DeleteTaskSet", "ecs:ListClusters", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateService", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "lambda:ListFunctions", "cloudwatch:DescribeAlarms", "sns:Publish", "sns:ListTopics", "s3:GetObject", "s3:GetObjectVersion", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment" ], "Resource":"*", "Effect":"Allow" },{"Action":[ "iam:PassRole" ], "Effect":"Allow", "Resource":"*", "Condition":{"StringLike":{"iam:PassedToService":[ "ecs-tasks.amazonaws.com", "codedeploy.amazonaws.com" ] } } }] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst 部署角色
對於 CodeCatalyst 工作流程動作,您可以建立具有必要許可的 IAM 角色。您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,或者建立 IAM 角色來部 CodeCatalyst署動作以用於 Lambda 部署。此角色使用具有範圍權限的政策,該政 Lambda CodeCatalyst 需要在. AWS 帳戶
此角色授予執行下列作業的權限:
-
讀取、更新和叫用 Lambda 函數和別名。
-
存取 Amazon S3 儲存貯體中的修訂版檔案。
-
擷取 CloudWatch 事件警示的相關資訊。
-
將資訊發佈到 Amazon SNS 主題。
此角色使用下列原則:
*{* "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DescribeAlarms", "lambda:UpdateAlias", "lambda:GetAlias", "lambda:GetProvisionedConcurrencyConfig", "sns:Publish" ], "Resource": "
resource_ARN
", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::/CodeDeploy/", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } }, "Effect": "Allow" }, { "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:::function:CodeDeployHook_*", "Effect": "Allow" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst 部署角色
對於 CodeCatalyst 工作流程動作,您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,也可以建立具有必要許可的 IAM 角色。此角色使用具有範圍權限的政策,該政 Lambda CodeCatalyst 需要在. AWS 帳戶
此角色授予執行下列作業的權限:
-
讀取、更新和叫用 Lambda 函數和別名。
-
存取 Amazon S3 儲存貯體中的修訂版檔案。
-
擷取有關 CloudWatch 警報的資訊。
-
將資訊發佈到 Amazon SNS 主題。
此角色使用下列原則:
*{* "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DescribeAlarms", "lambda:UpdateAlias", "lambda:GetAlias", "lambda:GetProvisionedConcurrencyConfig", "sns:Publish" ], "Resource": "
resource_ARN
", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::/CodeDeploy/", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } }, "Effect": "Allow" }, { "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:::function:CodeDeployHook_*", "Effect": "Allow" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst 部署角色 AWS SAM
對於 CodeCatalyst 工作流程動作,您可以使用預設CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色,也可以建立具有必要許可的 IAM 角色。此角色使用具有範圍權限的策略,該策略 CodeCatalyst 需要 AWS CloudFormation 在. AWS SAM AWS 帳戶
此角色授予執行下列作業的權限:
-
允許叫 CodeCatalyst 用 Lambda 函數來執行無伺服器和 AWS SAM CLI 應用程式的部署。
-
允許 CodeCatalyst 在中創建和更新堆棧和更改集。 AWS CloudFormation
此角色使用下列原則:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "iam:PassRole", "iam:DeleteRole", "iam:GetRole", "iam:TagRole", "iam:CreateRole", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "cloudformation:*", "lambda:*", "apigateway:*" ], "Resource": "*" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst Amazon EC2 的只讀角色
對於 CodeCatalyst 工作流程動作,您可以建立具有必要許可的 IAM 角色。此角色使用具有範圍許可 CodeCatalyst 的政策,該政策 Amazon EC2 在您的. AWS 帳戶CodeCatalystWorkflowDevelopmentRole-spaceName
服務角色不包含 Amazon EC2 的許可或 Amazon 所描述的動作 CloudWatch。
此角色授予執行下列作業的權限:
-
取得 Amazon EC2 執行個體的狀態。
-
取得 Amazon EC2 執行個體的 CloudWatch 指標。
此角色使用下列原則:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe", "Resource": "
resource_ARN
" }, { "Effect": "Allow", "Action": "elasticloadbalancing:Describe", "Resource": "resource_ARN
" }, { "Effect": "Allow", "Action": [ "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "cloudwatch:Describe" ], "Resource": "resource_ARN
" }, { "Effect": "Allow", "Action": "autoscaling:Describe", "Resource": "resource_ARN
" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst Amazon ECS 的唯讀角色
對於 CodeCatalyst 工作流程動作,您可以建立具有必要許可的 IAM 角色。此角色使用具有範圍許可的政策,該政策 CodeCatalyst 需要在您的 Amazon ECS 資源上執行任務。 AWS 帳戶
此角色授予執行下列作業的權限:
-
閱讀 Amazon ECS 任務集。
-
擷取有關 CloudWatch 警報的資訊。
此角色使用下列原則:
*{* "Version": "2012-10-17", "Statement": [ { "Action": [ "ecs:DescribeServices", "cloudwatch:DescribeAlarms" ], "Resource": "
resource_ARN
", "Effect": "Allow" }, { "Action": [ "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeRules" ], "Resource": "resource_ARN
", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } }, "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam:::role/ecsTaskExecutionRole", "arn:aws:iam:::role/ECSTaskExecution" ], "Condition": { "StringLike": { "iam:PassedToService": [ "ecs-tasks.amazonaws.com" ] } } } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
CodeCatalyst Lambda 的唯讀角色
對於 CodeCatalyst 工作流程動作,您可以建立具有必要許可的 IAM 角色。此角色使用具有範圍權限的政策,該政 Lambda CodeCatalyst 需要在. AWS 帳戶
此角色授與下列項目的權限:
-
讀取 Lambda 函數和別名。
-
存取 Amazon S3 儲存貯體中的修訂版檔案。
-
擷取有關 CloudWatch 警報的資訊。
此角色使用下列 政策。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DescribeAlarms", "lambda:GetAlias", "lambda:GetProvisionedConcurrencyConfig" ], "Resource": "
resource_ARN
", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::/CodeDeploy/", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } }, "Effect": "Allow" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
手動建立工作流程動作的角色
CodeCatalyst 工作流程動作使用您建立的 IAM 角色,稱為建置角色、部署角色和堆疊角色。
請依照下列步驟在 IAM 中建立這些角色。
若要建立部署角色
-
建立角色的策略,執行方式如下:
-
登入到 AWS。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇政策。
-
選擇 Create policy (建立政策)。
-
請選擇 JSON 標籤。
-
刪除現有的程式碼。
-
貼上以下程式碼:
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:Describe*", "cloudformation:UpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "cloudformation:List*", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
-
選擇下一步:標籤。
-
選擇下一步:檢閱。
-
在名稱中,輸入:
codecatalyst-deploy-policy
-
選擇建立政策。
您現在已建立權限原則。
-
-
建立部署角色,如下所示:
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 [自訂信任原則]。
-
刪除現有的自訂信任原則。
-
新增下列自訂信任原則:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
選擇下一步。
-
在 [權限] 原則中,搜尋
codecatalyst-deploy-policy
並選取其核取方塊。 -
選擇下一步。
-
在「角色名稱」中,輸入:
codecatalyst-deploy-role
-
對於「角色」描述,請輸入:
CodeCatalyst deploy role
-
選擇建立角色。
您現在已建立具有信任原則和權限原則的部署角色。
-
-
取得部署角色 ARN,如下所示:
-
在導覽窗格中,選擇角色。
-
在搜尋方塊中,輸入您剛建立的角色名稱 (
codecatalyst-deploy-role
)。 -
從清單中選擇角色。
此時會顯示角色的 [摘要] 頁面。
-
在頂端複製 ARN 值。
您現在已建立具有適當權限的部署角色,並取得其 ARN。
-
若要建立建置角色
-
建立角色的策略,執行方式如下:
-
登入到 AWS。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇政策。
-
選擇 Create policy (建立政策)。
-
請選擇 JSON 標籤。
-
刪除現有的程式碼。
-
貼上以下程式碼:
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:PutObject", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
-
選擇下一步:標籤。
-
選擇下一步:檢閱。
-
在名稱中,輸入:
codecatalyst-build-policy
-
選擇建立政策。
您現在已建立權限原則。
-
-
建立組建角色,如下所示:
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 [自訂信任原則]。
-
刪除現有的自訂信任原則。
-
新增下列自訂信任原則:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
選擇下一步。
-
在 [權限] 原則中,搜尋
codecatalyst-build-policy
並選取其核取方塊。 -
選擇下一步。
-
在「角色名稱」中,輸入:
codecatalyst-build-role
-
對於「角色」描述,請輸入:
CodeCatalyst build role
-
選擇建立角色。
您現在已建立具有信任原則和權限原則的組建角色。
-
-
取得建置角色 ARN,如下所示:
-
在導覽窗格中,選擇角色。
-
在搜尋方塊中,輸入您剛建立的角色名稱 (
codecatalyst-build-role
)。 -
從清單中選擇角色。
此時會顯示角色的 [摘要] 頁面。
-
在頂端複製 ARN 值。
您現在已建立具有適當權限的組建角色,並取得其 ARN。
-
若要建立堆疊角色
注意
您不必建立堆疊角色,雖然出於安全性考量,建議您這麼做。如果您不建立堆疊角色,則需要將此程序中進一步描述的權限原則新增至部署角色。
-
AWS 使用您要部署堆疊的帳戶登入。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在瀏覽窗格中,選擇 [角色],然後選擇 [建立角色]。
-
在頂部,選擇AWS 服務。
-
從服務清單中選擇CloudFormation。
-
選擇下一步:許可。
-
在搜尋方塊中,新增存取堆疊中資源所需的任何原則。例如,如果您的堆疊包含 AWS Lambda 函數,則需要新增授與 Lambda 存取權的政策。
提示
如果您不確定要新增哪些原則,可以暫時省略它們。當您測試動作時,如果您沒有正確的權限, AWS CloudFormation 會產生錯誤,顯示您需要新增的權限。
-
選擇下一步:標籤。
-
選擇下一步:檢閱。
-
在「角色名稱」中,輸入:
codecatalyst-stack-role
-
選擇建立角色。
-
若要取得堆疊角色的 ARN,請執行下列動作:
-
在導覽窗格中,選擇角色。
-
在搜尋方塊中,輸入您剛建立的角色名稱 (
codecatalyst-stack-role
)。 -
從清單中選擇角色。
-
在 [摘要] 頁面上,複製角色 ARN 值。
-
用 AWS CloudFormation 於在 IAM 中建立政策和角色
您可以選擇建立和使用 AWS CloudFormation 範本來建立所需的策略和角色,以便在 CodeCatalyst 專案和工作流程中存取資源。 AWS 帳戶 AWS CloudFormation 這項服務可協助您建立資源模型並設定 AWS 資源,以減少管理這些資源的時間,而將更多時間專注於執行的應用程式 AWS。如果您打算建立多個角色 AWS 帳戶,建立範本可協助您更快地執行此工作。
下列範例範本會建立部署動作角色和原則。
Parameters: CodeCatalystAccountId: Type: String Description: Account ID from the connections page ExternalId: Type: String Description: External ID from the connections page Resources: CrossAccountRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: AWS: - !Ref CodeCatalystAccountId Action: - 'sts:AssumeRole' Condition: StringEquals: sts:ExternalId: !Ref ExternalId Path: / Policies: - PolicyName: CodeCatalyst-CloudFormation-action-policy PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: - 'cloudformation:CreateStack' - 'cloudformation:DeleteStack' - 'cloudformation:Describe*' - 'cloudformation:UpdateStack' - 'cloudformation:CreateChangeSet' - 'cloudformation:DeleteChangeSet' - 'cloudformation:ExecuteChangeSet' - 'cloudformation:SetStackPolicy' - 'cloudformation:ValidateTemplate' - 'cloudformation:List*' - 'iam:PassRole' Resource: '*'
手動建立 Web 應用程式藍圖的角色
CodeCatalyst Web 應用程式藍圖使用您建立的 IAM 角色,稱為 CDK 的建置角色、部署角色和堆疊角色。
請依照下列步驟在 IAM 中建立角色。
若要建立建置角色
-
建立角色的策略,執行方式如下:
-
登入到 AWS。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇政策。
-
選擇建立政策。
-
請選擇 JSON 標籤。
-
刪除現有的程式碼。
-
貼上以下程式碼:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "ecr:*", "ssm:*", "s3:*", "iam:PassRole", "iam:GetRole", "iam:CreateRole", "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "*" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
-
選擇下一步:標籤。
-
選擇下一步:檢閱。
-
在名稱中,輸入:
codecatalyst-webapp-build-policy
-
選擇建立政策。
您現在已建立權限原則。
-
-
建立組建角色,如下所示:
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 [自訂信任原則]。
-
刪除現有的自訂信任原則。
-
新增下列自訂信任原則:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
選擇下一步。
-
將權限原則附加至組建角色。在 [新增權限] 頁面的 [權限原則] 區段中,搜尋
codecatalyst-webapp-build-policy
並選取其核取方塊。 -
選擇下一步。
-
在「角色名稱」中,輸入:
codecatalyst-webapp-build-role
-
對於「角色」描述,請輸入:
CodeCatalyst Web app build role
-
選擇建立角色。
您現在已建立具有信任原則和權限原則的組建角色。
-
-
將權限原則附加至組建角色,如下所示:
-
在導覽窗格中,選擇 [角色],然後搜尋
codecatalyst-webapp-build-role
。 -
選擇
codecatalyst-webapp-build-role
顯示其詳細資訊。 -
在 [權限] 索引標籤中,選擇 [新增權限],然後選擇 [附加原則]。
-
搜尋
codecatalyst-webapp-build-policy
,選取其核取方塊,然後選擇 [附加原則]。您現在已將權限原則附加至組建角色。組建角色現在有兩個原則:權限原則和信任原則。
-
-
取得建置角色 ARN,如下所示:
-
在導覽窗格中,選擇角色。
-
在搜尋方塊中,輸入您剛建立的角色名稱 (
codecatalyst-webapp-build-role
)。 -
從清單中選擇角色。
此時會顯示角色的 [摘要] 頁面。
-
在頂端複製 ARN 值。
您現在已建立具有適當權限的組建角色,並取得其 ARN。
-
手動建立 SAM 藍圖的角色
S CodeCatalyst AM 藍圖使用您建立的 IAM 角色稱為建置角色,以 CloudFormation及 S AM 的部署角色。
請依照下列步驟在 IAM 中建立角色。
若要建立下列項目的建置角色 CloudFormation
-
建立角色的策略,執行方式如下:
-
登入到 AWS。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇政策。
-
選擇建立政策。
-
請選擇 JSON 標籤。
-
刪除現有的程式碼。
-
貼上以下程式碼:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*", "cloudformation:*" ], "Resource": "*" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
-
選擇下一步:標籤。
-
選擇下一步:檢閱。
-
在名稱中,輸入:
codecatalyst-SAM-build-policy
-
選擇建立政策。
您現在已建立權限原則。
-
-
建立組建角色,如下所示:
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 [自訂信任原則]。
-
刪除現有的自訂信任原則。
-
新增下列自訂信任原則:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
選擇下一步。
-
將權限原則附加至組建角色。在 [新增權限] 頁面的 [權限原則] 區段中,搜尋
codecatalyst-SAM-build-policy
並選取其核取方塊。 -
選擇下一步。
-
在「角色名稱」中,輸入:
codecatalyst-SAM-build-role
-
對於「角色」描述,請輸入:
CodeCatalyst SAM build role
-
選擇建立角色。
您現在已建立具有信任原則和權限原則的組建角色。
-
-
將權限原則附加至組建角色,如下所示:
-
在導覽窗格中,選擇 [角色],然後搜尋
codecatalyst-SAM-build-role
。 -
選擇
codecatalyst-SAM-build-role
顯示其詳細資訊。 -
在 [權限] 索引標籤中,選擇 [新增權限],然後選擇 [附加原則]。
-
搜尋
codecatalyst-SAM-build-policy
,選取其核取方塊,然後選擇 [附加原則]。您現在已將權限原則附加至組建角色。組建角色現在有兩個原則:權限原則和信任原則。
-
-
取得建置角色 ARN,如下所示:
-
在導覽窗格中,選擇角色。
-
在搜尋方塊中,輸入您剛建立的角色名稱 (
codecatalyst-SAM-build-role
)。 -
從清單中選擇角色。
此時會顯示角色的 [摘要] 頁面。
-
在頂端複製 ARN 值。
您現在已建立具有適當權限的組建角色,並取得其 ARN。
-
若要建立 SAM 的部署角色
-
建立角色的策略,執行方式如下:
-
登入到 AWS。
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇政策。
-
選擇建立政策。
-
請選擇 JSON 標籤。
-
刪除現有的程式碼。
-
貼上以下程式碼:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "iam:PassRole", "iam:DeleteRole", "iam:GetRole", "iam:TagRole", "iam:CreateRole", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "cloudformation:*", "lambda:*", "apigateway:*" ], "Resource": "*" } ] }
注意
第一次使用角色執行工作流程動作時,請在資源策略陳述式中使用萬用字元,然後在策略可用之後使用資源名稱縮小策略的範圍。
"Resource": "*"
-
選擇下一步:標籤。
-
選擇下一步:檢閱。
-
在名稱中,輸入:
codecatalyst-SAM-deploy-policy
-
選擇建立政策。
您現在已建立權限原則。
-
-
建立組建角色,如下所示:
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 [自訂信任原則]。
-
刪除現有的自訂信任原則。
-
新增下列自訂信任原則:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
選擇下一步。
-
將權限原則附加至組建角色。在 [新增權限] 頁面的 [權限原則] 區段中,搜尋
codecatalyst-SAM-deploy-policy
並選取其核取方塊。 -
選擇下一步。
-
在「角色名稱」中,輸入:
codecatalyst-SAM-deploy-role
-
對於「角色」描述,請輸入:
CodeCatalyst SAM deploy role
-
選擇建立角色。
您現在已建立具有信任原則和權限原則的組建角色。
-
-
將權限原則附加至組建角色,如下所示:
-
在導覽窗格中,選擇 [角色],然後搜尋
codecatalyst-SAM-deploy-role
。 -
選擇
codecatalyst-SAM-deploy-role
顯示其詳細資訊。 -
在 [權限] 索引標籤中,選擇 [新增權限],然後選擇 [附加原則]。
-
搜尋
codecatalyst-SAM-deploy-policy
,選取其核取方塊,然後選擇 [附加原則]。您現在已將權限原則附加至組建角色。組建角色現在有兩個原則:權限原則和信任原則。
-
-
取得建置角色 ARN,如下所示:
-
在導覽窗格中,選擇角色。
-
在搜尋方塊中,輸入您剛建立的角色名稱 (
codecatalyst-SAM-deploy-role
)。 -
從清單中選擇角色。
此時會顯示角色的 [摘要] 頁面。
-
在頂端複製 ARN 值。
您現在已建立具有適當權限的組建角色,並取得其 ARN。
-