使用 AWS Cloud9 的服務連結角色 - AWS Cloud9

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS Cloud9 的服務連結角色

AWS Cloud9 會使用 AWS Identity and Access Management (IAM) 的服務連結角色。服務連結角色是直接連結至 AWS Cloud9 的一種特殊 IAM 角色類型。服務連結角色由 AWS Cloud9 預先定義,且內含該服務代您呼叫其他 AWS 服務所需的所有許可。

服務連結的角色可讓設定 AWS Cloud9 更為簡單,因為您不必新增必要的許可。AWS Cloud9 會定義其服務連結角色的許可,且僅有 AWS Cloud9 可以擔任角色。定義的許可包括信任政策和許可政策,並且該許可政策不能附加到任何其他 IAM 實體。

您必須先刪除角色的相關資源,才能刪除角色。如此可保護您 AWS Cloud9 的資源,避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務的資訊,請參閱可搭配 IAM 運作的 AWS 服務,並尋找服務連結角色欄顯示為的服務。選擇具有連結的 Yes (是),以檢視該服務的服務連結角色文件。

AWS Cloud9 的服務連結角色許可

AWS Cloud9使用名為AWSServiceRoleForAWSCloud 9 的服務連結角色。此服務連結角色信任 cloud9.amazonaws.com 服務擔任其角色。

此服務連結角色的許可政策名為名為 AWSCloud9ServiceRolePolicy,它可AWS Cloud9允許在指定的資源上完成下政策中列出的動作。

重要

如果您正在使用 License Manager,並且收到 unable to access your environment 錯誤,則需要將舊的服務連結角色取代為支援 License Manager 的版本。您可以透過直接刪除來取代舊角色。然後,更新過的角色會自動建立。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateSecurityGroup", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "cloudformation:CreateStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:DeleteStack" ], "Resource": "arn:aws:cloudformation:*:*:stack/aws-cloud9-*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringLike": { "aws:RequestTag/Name": "aws-cloud9-*" } } }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*", "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-name": "aws-cloud9-*" } } }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": [ "arn:aws:license-manager:*:*:license-configuration:*" ] }, { "Effect": "Allow", "Action": [ "iam:ListInstanceProfiles", "iam:GetInstanceProfile" ], "Resource": [ "arn:aws:iam::*:instance-profile/cloud9/*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole" ], "Condition": { "StringLike": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }

您必須設定許可,以允許 AWS Cloud9 代表 IAM 實體 (如使用者、群組或角色) 建立服務連結角色。

為使能AWS Cloud9夠建立AWSServiceRoleForAWSCloud 9 服務連結角色,請將以下陳述式加入至AWS Cloud9需要代為建立服務連結角色的 IAM 實體許可政策。

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }

或者,您也可為 IAM 實體新增 AWS 受管政策 AWSCloud9UserAWSCloud9Administrator

若要允許 IAM 實體刪除AWSServiceRoleForAWSCloud 9 服務連結角色,請將以下陳述式加入至需要刪除服務連結角色的 IAM 實體許可政策。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "cloud9.amazonaws.com" } } }

為 AWS Cloud9 建立服務連結角色

您不需要建立服務連結角色。建立 AWS Cloud9 開發環境後,AWS Cloud9 會為您建立服務連結角色。

為 AWS Cloud9 編輯服務連結角色

您無法在編輯AWSServiceRoleForAWSCloud 9 服務連結角色AWS Cloud9。例如,您一旦建立了服務連結角色,即無法變更該角色的名稱,因為各種實體皆可能會參考該角色。然而,您可使用 IAM 來編輯角色描述。如需更多資訊,請參閱 IAM 使用者指南中的編輯服務連結角色

為 AWS Cloud9 刪除服務連結角色

若您不再使用需要服務連結角色的功能或服務,我們建議您刪除該角色。如此一來,您就沒有未主動監控或維護的未使用實體。

在 IAM 中刪除服務連結角色

使用 IAM 刪除服務連結角色之前,您必須先移除該角色所使用的任何 AWS Cloud9 資源。若要移除 AWS Cloud9 資源,請參閱刪除環境

您可以使用 IAM 主控台刪除AWSServiceRoleForAWSCloud 9 服務連結角色。如需詳細資訊,請參閱 IAM 使用者指南中的刪除服務連結角色

AWS Cloud9 服務連結角色的支援區域

AWS Cloud9 支援在所有提供服務的區域中,使用服務連結角色。如需詳細資訊,請參閱 Amazon Web Services 一般參考 中的 AWS Cloud9