

AWS Migration Hub Refactor Spaces はプレビューリリースであり、変更される可能性があります。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# リファクタリングスペースでのサービスにリンクされたロールの使用
<a name="using-service-linked-roles"></a>

AWS Migration Hub のリファクタリングスペースAWS Identity and Access Management(IAM)[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。サービスにリンクされたロールは、リファクタリングスペースに直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、リファクタリングスペースによって事前定義され、サービスが other を呼び出すために必要なすべてのアクセス許可を備えています。AWSお客様に代わってのサービス。

サービスにリンクされたロールを使用すると、必要なアクセス許可を手動で追加する必要がなくなるため、リファクタリングスペースの設定が簡単になります。スペースのリファクタリングでは、サービスにリンクされたロールのアクセス許可を定義します。特に定義されている場合を除き、リファクタリングスペースのみがそのロールを引き受けることができます。定義される許可には、信頼ポリシーと許可ポリシーが含まれており、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

サービスリンクロールを削除するには、まずその関連リソースを削除します。これにより、リソースへの不注意によるアクセス許可の削除が防止され、リファクタリングスペースのリソースが保護されます。

サービスリンクロールをサポートする他のサービスについては、[IAM と連携する AWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)を参照して、[**Service-linked role**] (サービスにリンクされたロール) 列が [**Yes**] (はい) になっているサービスを見つけてください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、**はい** リンクを選択します。

## リファクタリングスペースに対するサービスにリンクされたロールのアクセス許可
<a name="slr-permissions"></a>

スペースのリファクタリングでは、という名前のサービスにリンクされたロールを使用します。**AWS Service ロールフォーマイグレーション HubreFactorSpaces**そして、それを関連づけます**移行 HubreFactorSpaces サービスロールポリシー**IAM ポリシー — へのアクセスを提供しますAWSAWS 移行ハブリファクタリングスペースによって管理または使用されるリソース。

サービスにリンクされたロール AWSServiceRoleForMigrationHubreFactorSpaces は、以下のサービスを信頼してロールを引き受けます。
+ `refactor-spaces.amazonaws.com`

以下は、AWSServiceRoleForMigrationHubreFactorSpaces の Amazon リソースネーム（ARN）です。

```
arn:aws:iam::111122223333:role/aws-service-role/refactor-spaces.amazonaws.com/AWSServiceRoleForMigrationHubRefactorSpaces
```

リファクタリングスペースは**AWS Service ロールフォーマイグレーション HubreFactorSpaces**クロスアカウントの変更を実行するときのサービスにリンクされたロール。リファクタリングスペースを使用するには、このロールがアカウントに存在している必要があります。存在しない場合、リファクタリングスペースは次の API 呼び出し中に作成します。
+ `CreateEnvironment`
+ `CreateService`
+ `CreateApplication`
+ `CreateRoute`

サービスにリンクされたロールを作成するための `iam:CreateServiceLinkedRole` アクセス許可が必要です。サービスにリンクされたロールがアカウントに存在せず、作成できない場合は、`Create`コールは失敗します。リファクタリングスペースコンソールを使用している場合を除き、リファクタリングスペースを使用する前に IAM コンソールでサービスにリンクされたロールを作成する必要があります。

リファクタリングスペースは、現在のサインインアカウントを変更する際に、サービスにリンクされたロールを使用しません。たとえば、アプリケーションが作成されると、リファクタリングスペースは環境内のすべての VPC を更新して、新しく追加された VPC と通信できるようにします。VPC が他のアカウントにある場合、リファクタリングスペースはサービスにリンクされたロールと`ec2:CreateRoute`他のアカウントのルートテーブルを更新する権限。

アプリケーションの作成例をさらに拡張するために、アプリケーションを作成するときに、リファクタVPC スペースは、`CreateApplication`を呼び出します。この方法で、VPC は環境内の他の VPC と通信できます。

呼び出し元には`ec2:CreateRoute`ルートテーブルを更新するために使用する権限。この権限はサービスにリンクされたロールに存在しますが、リファクタリングスペースは、呼び出し元のアカウントのサービスにリンクされたロールを使用してこの権限を取得しません。代わりに、呼び出し元は`ec2:CreateRoute`アクセス許可。それ以外の場合、コールは失敗します。

サービスにリンクされたロールを使用して、権限のエスカレーションはできません。呼び出し元アカウントに変更を加えるには、アカウントに、サービスにリンクされたロールのアクセス許可がすでにある必要があります。-`AWSMigrationHubRefactorSpacesFullAccess`管理ポリシーは、追加の必要なアクセス許可を付与するポリシーとともに、リファクタリングスペースリソースの作成に必要なすべてのアクセス許可を定義します。サービスにリンクされたロールは、特定のクロスアカウント呼び出しに使用されるこれらのアクセス許可のサブセットです。`AWSMigrationHubRefactorSpacesFullAccess` の詳細については、「[AWS管理ポリシー: AWSMigration HubreFactorSpaceフルアクセス](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSMigrationHubRefactorSpacesFullAccess)」を参照してください。



### Tags
<a name="slr-permissions-tags"></a>

リファクタリングスペースは、アカウントにリソースを作成するときに、適切なリファクタリングスペースのリソース ID でタグ付けされます。たとえば、から作成されたTransit Gateway`CreateEnvironment`にタグが付けられている`refactor-spaces:environment-id`タグ。環境 ID を値として指定します。から作成された API Gateway API`CreateApplication`タグが付きます`refactor-spaces:application-id`アプリケーション ID を値として指定します。これらのタグを使用すると、リファクタリングスペースでこれらのリソースを管理できます。タグを編集または削除すると、リファクタリングスペースはリソースを更新または削除できなくなります。

### MigrationHubRefactorSpacesServiceRolePolicy
<a name="slr-permissions-iam-policy"></a>

MigrationHubreFactorSpaceServiceRolePolicy という名前のロールのアクセス許可ポリシーは、指定されたリソースに対して以下のアクションを実行できるようにします。

Amazon API Gateway アクション  
 `apigateway:PUT`   
 `apigateway:POST`   
 `apigateway:GET`   
 `apigateway:PATCH`   
 `apigateway:DELETE` 

Amazon Elastic Compute Cloud のアクション  
 `ec2:DescribeNetworkInterfaces`   
 `ec2:DescribeRouteTables`   
 `ec2:DescribeSubnets`   
 `ec2:DescribeSecurityGroups`   
 `ec2:DescribeVpcEndpointServiceConfigurations`   
 `ec2:DescribeTransitGatewayVpcAttachments`   
 `ec2:AuthorizeSecurityGroupIngress`   
 `ec2:RevokeSecurityGroupIngress`   
 `ec2:DeleteSecurityGroup`   
 `ec2:DeleteTransitGatewayVpcAttachment`   
 `ec2:CreateRoute`   
 `ec2:DeleteRoute`   
 `ec2:DeleteTags`   
 `ec2:DeleteVpcEndpointServiceConfigurations` 

AWS Resource Access Manager アクション  
 `ram:GetResourceShareAssociations`   
 `ram:DeleteResourceShare`   
 `ram:AssociateResourceShare`   
 `ram:DisassociateResourceShare` 

Elastic Load Balancing  
 `elasticloadbalancing:DescribeTargetHealth`   
 `elasticloadbalancing:DescribeListener`   
 `elasticloadbalancing:DescribeTargetGroups`   
 `elasticloadbalancing:RegisterTargets`   
 `elasticloadbalancing:CreateLoadBalancerListeners`   
 `elasticloadbalancing:CreateListener`   
 `elasticloadbalancing:DeleteListener`   
 `elasticloadbalancing:DeleteTargetGroup`   
 `elasticloadbalancing:DeleteLoadBalancer`   
 `elasticloadbalancing:AddTags`   
 `elasticloadbalancing:CreateTargetGroup` 

以下は、前述のアクションが適用されるリソースを示す全ポリシーです。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcEndpointServiceConfigurations",
                "ec2:DescribeTransitGatewayVpcAttachments",
                "elasticloadbalancing:DescribeTargetHealth",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeTargetGroups",
                "ram:GetResourceShareAssociations"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteTransitGatewayVpcAttachment",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:DeleteTags",
                "ram:DeleteResourceShare",
                "ram:AssociateResourceShare",
                "ram:DisassociateResourceShare"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "aws:ResourceTag/refactor-spaces:environment-id": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteVpcEndpointServiceConfigurations",
            "Resource": "*",
            "Condition": {
                "Null": {
                    "aws:ResourceTag/refactor-spaces:application-id": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:RegisterTargets",
                "elasticloadbalancing:CreateLoadBalancerListeners",
                "elasticloadbalancing:CreateListener",
                "elasticloadbalancing:DeleteListener",
                "elasticloadbalancing:DeleteTargetGroup"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/refactor-spaces:route-id": [
                        "*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "apigateway:PUT",
                "apigateway:POST",
                "apigateway:GET",
                "apigateway:PATCH",
                "apigateway:DELETE"
            ],
            "Resource": [
                "arn:aws:apigateway:*::/restapis",
                "arn:aws:apigateway:*::/restapis/*",
                "arn:aws:apigateway:*::/vpclinks/*",
                "arn:aws:apigateway:*::/tags",
                "arn:aws:apigateway:*::/tags/*"
            ],
            "Condition": {
                "Null": {
                    "aws:ResourceTag/refactor-spaces:application-id": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "apigateway:GET",
            "Resource": "arn:aws:apigateway:*::/vpclinks/*"
        },
        {
            "Effect": "Allow",
            "Action": "elasticloadbalancing:DeleteLoadBalancer",
            "Resource": "arn:*:elasticloadbalancing:*:*:loadbalancer/net/refactor-spaces-nlb-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:AddTags",
                "elasticloadbalancing:CreateListener"
            ],
            "Resource": "arn:*:elasticloadbalancing:*:*:loadbalancer/net/refactor-spaces-nlb-*",
            "Condition": {
                "Null": {
                    "aws:RequestTag/refactor-spaces:route-id": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "elasticloadbalancing:DeleteListener",
            "Resource": "arn:*:elasticloadbalancing:*:*:listener/net/refactor-spaces-nlb-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DeleteTargetGroup",
                "elasticloadbalancing:RegisterTargets"
            ],
            "Resource": "arn:*:elasticloadbalancing:*:*:targetgroup/refactor-spaces-tg-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:AddTags",
                "elasticloadbalancing:CreateTargetGroup"
            ],
            "Resource": "arn:*:elasticloadbalancing:*:*:targetgroup/refactor-spaces-tg-*",
            "Condition": {
                "Null": {
                    "aws:RequestTag/refactor-spaces:route-id": "false"
                }
            }
        }
    ]
}
```

サービスリンクロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、許可を設定する必要があります。詳細については、*IAM ユーザーガイド*の「[サービスリンクロールの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

## リファクタリングスペースのサービスにリンクされたロールの作成
<a name="create-slr"></a>

サービスリンクロールを手動で作成する必要はありません。リファクタリングスペース環境、アプリケーション、サービス、またはルートリソースをAWS マネジメントコンソールとすると、AWS CLI、またはAWSAPI、リファクタリングスペースは、サービスにリンクされたロールを自動的に作成します。リファクタリングスペースのサービスにリンクされたロールの作成の詳細については、「」を参照してください。[リファクタリングスペースに対するサービスにリンクされたロールのアクセス許可](#slr-permissions)。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ方法でアカウントにロールを再作成できます。リファクタリングスペース環境、アプリケーション、サービス、またはルートリソースを作成すると、リファクタリングスペースによってサービスにリンクされたロールが自動的に再作成されます。

## リファクタリングスペースのサービスにリンクされたロールの編集
<a name="edit-slr"></a>

スペースをリファクタリングすると、AWSServiceRoleForMigrationHubreFactorSpaces サービスにリンクされたロールを編集することはできません。サービスにリンクされたロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用したロールの説明の編集はできます。詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

## リファクタリングスペースのサービスにリンクされたロールの削除
<a name="delete-slr"></a>

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

**注記**  
リソースを削除する際に、リファクタリングスペースサービスでロールが使用されている場合、削除は失敗することがあります。失敗した場合は、数分待ってから再度オペレーションを実行してください。

AWSServiceRoleForMigrationHubreFactorSpaces で使用されるリファクタリングスペースリソースを削除するには、リファクタリングスペースコンソールを使用してリソースを削除するか、リソースの API の削除操作を使用します。API の削除オペレーションの詳細については、「」を参照してください。[スペースのリファクタリング API リファレンス](https://docs.aws.amazon.com/migrationhub-refactor-spaces/latest/APIReference/Welcome.html)。

**IAM を使用して、サービスにリンクされたロールを手動で削除するには**

IAM コンソールを使用して、AWS CLI、またはAWSサービスにリンクされたロールである [AWSServiceRoleForMigrationHubreFactorSpaces] を削除するための API。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの削除」を参照してください。[https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)**

## リファクタリングスペースサービスにリンクされたロールをサポートするリージョン
<a name="slr-regions"></a>

リファクタリングスペースは、そのサービスを利用できるすべてのリージョンで、サービスにリンクされたロールの使用をサポートします。詳細については、 [AWS リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)を参照してください。