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 のサービスを参照して、[Service-Linked Role] (サービスにリンクされたロール) 列が [Yes] (はい) になっているサービスを探してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、リンク付きの [Yes] (はい) を選択します。

AWS Cloud9 のサービスにリンクされたロールの権限

AWS Cloud9 は、AWSServiceRoleForAWSCloud9 というサービスにリンクされたロールを使用します 。このサービスにリンクされたロールは、ロールを引き受ける上で 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" } } } ] }

IAM エンティティ (ユーザー、グループ、ロールなど) に代わってサービスにリンクされたロールの作成が AWS Cloud9 に許可されるように、許可を設定する必要があります。

AWSServiceRoleForAWSCloud9 サービスにリンクされたロールの作成を AWS Cloud9 に許可するには、IAM エンティティが代行する AWS Cloud9 がサービスにリンクされたロールを作成するため必要とする IAM エンティティの許可ポリシーに次のステートメントを追加します。

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

または、AWS マネージドポリシー AWSCloud9User または AWSCloud9Administrator を IAM エンティティに追加できます。

AWSServiceRoleForAWSCloud9 サービスにリンクされたロールの削除を IAM エンティティに許可するには、サービスリンクされたロールを削除する必要がある IAM エンティティの許可ポリシーに次のステートメントを追加します。

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

AWS Cloud9 のサービスにリンクされたロールの作成

サービスにリンクされたロールを手動で作成する必要はありません。AWS Cloud9開発環境を作成すると、AWS Cloud9 はサービスにリンクされたロールを作成します。

AWS Cloud9 のサービスにリンクされたロールの編集

AWS Cloud9 で AWSServicerOLEforAWSCloud9 サービスリンクロールを編集できません。たとえば、サービスにリンクされたロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAMを使用したロールの説明の編集はできます。詳細については、IAMユーザーガイドの「サービスにリンクされたロールの編集」を参照してください。

AWS Cloud9 のサービスにリンクされたロールの削除

サービスにリンクされたロールが必要な機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、使用していないエンティティがアクティブにモニタリングまたはメンテナンスされることがなくなります。

IAM でのサービスにリンクされたロールの削除

IAM を使ってサービスにリンクされたロールを削除する前に、そのロールで使用されている任意の AWS Cloud9 リソースを削除する必要があります。AWS Cloud9 リソースを削除するには、「環境の削除」を参照してください。

IAM コンソールを使って、AWSServiceRoleForAWSCloud9 サービスにリンクされたロールを削除することができます。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの削除」を参照してください。

AWS Cloud9 サービスにリンクされたロールをサポートするリージョン

AWS Cloud9 は、サービスを利用できるすべてのリージョンで、サービスにリンクされたロールの使用をサポートします。詳細については、Amazon Web Services の全般的なリファレンスAWS Cloud9 を参照してください。