

AWS Migration Hub Refactor Spaces se encuentra en una versión preliminar, por lo que está sujeto a cambios.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de roles vinculados a servicios para Refactorizar Espacios
<a name="using-service-linked-roles"></a>

AWS Migration Hub Refactor Spaces utilizaAWS Identity and Access Management(IAM)[roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role). Un rol vinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a Refactorizar Espacios. Los roles vinculados a servicios están predefinidos por Refactor Spaces e incluyen todos los permisos que el servicio requiere para llamar a otrosAWSservicios en su nombre. 

Un rol vinculado a un servicio simplifica la configuración de espacios de refactor porque ya no tendrá que agregar manualmente los permisos necesarios. Refactor Spaces define los permisos de sus roles vinculados a servicio y, a menos que esté definido de otra manera, solo Refactor Spaces puede asumir sus roles. Los permisos definidos incluyen las políticas de confianza y de permisos y que la política de permisos no se pueda adjuntar a ninguna otra entidad de IAM.

Solo puede eliminar una función vinculada a un servicio después de eliminar sus recursos relacionados. De esta forma se protegen los recursos de Refactor Spaces, ya que evita que se puedan eliminar accidentalmente permisos de acceso a los recursos.

Para obtener información acerca de otros servicios que admiten roles vinculados a servicios, consulte [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) y busque los servicios que muestran **Sí ** en la columna **Rol vinculado a servicios**. Seleccione una opción **Sí** con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.

## Permisos de rol vinculado a servicios en espacios de refactor
<a name="slr-permissions"></a>

Refactor Spaces utiliza el rol vinculado al servicio denominado**Función de servicio de AWS para espacios de factor de migración**y lo asocia con el**Política de rol de servicio de espacios de factor de migración**Política de IAM: proporciona acceso aAWSrecursos administrados o utilizados por AWS Migration Hub Refactor Spaces.

El rol vinculado al servicio AWSServiceRoleForMigrationHubreFatorSpaces confía en que los siguientes servicios asuman el rol:
+ `refactor-spaces.amazonaws.com`

A continuación se muestra el nombre de recurso de Amazon (ARN) de AWSServiceRoleForMigrationHubreFactorSpaces.

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

Refactor Spaces utiliza el**Función de servicio de AWS para espacios de factor de migración**función vinculada a servicios cuando se realizan cambios entre cuentas. Este rol debe estar presente en su cuenta para utilizar espacios de refactor. Si no está presente, Refactor Spaces lo crea durante las siguientes llamadas a la API:
+ `CreateEnvironment`
+ `CreateService`
+ `CreateApplication`
+ `CreateRoute`

Debe tener permisos de `iam:CreateServiceLinkedRole` para crear el rol vinculado a servicios. Si el rol vinculado al servicio no existe en su cuenta y no se puede crear, el`Create`las llamadas fallarán. Debe crear el rol vinculado a servicios en la consola de IAM antes de utilizar Refactor Spaces, a menos que esté utilizando la consola Refactor Spaces. 

Refactor Spaces no utiliza el rol vinculado al servicio cuando realiza cambios en la cuenta de inicio de sesión actual. Por ejemplo, cuando se crea una aplicación, Refactor Spaces actualiza todas las VPC del entorno para que puedan comunicarse con la VPC recién agregada. Si las VPC se encuentran en otras cuentas, Refactor Spaces utiliza el rol vinculado a servicios y el`ec2:CreateRoute`permiso para actualizar las tablas de rutas de otras cuentas.

Para ampliar aún más el ejemplo de creación de aplicación, al crear una aplicación, Refactor Spaces actualiza las tablas de enrutamiento que se encuentran en la nube privada virtual (VPC) proporcionada en el`CreateApplication`Llame a. De esta forma, la VPC puede comunicarse con otras VPC del entorno. 

La persona que llama debe tener el`ec2:CreateRoute`permiso que utilizamos para actualizar las tablas de ruta. Este permiso existe en el rol vinculado a servicios, pero Refactor Spaces no utiliza el rol vinculado a servicios en la cuenta de la persona que llama para obtener este permiso. En cambio, la persona que llama debe tener la`ec2:CreateRoute`permiso. De lo contrario, la solicitud envía un error. 

No puede utilizar el rol vinculado a servicio para ampliar sus privilegios. Tu cuenta debe tener ya los permisos del rol vinculado al servicio para realizar los cambios en la cuenta que llama. La`AWSMigrationHubRefactorSpacesFullAccess`la política administrada, junto con una política que otorga los permisos adicionales necesarios, define todos los permisos necesarios para crear recursos de Refactor Spaces. El rol vinculado a servicios es un subconjunto de estos permisos que se utiliza para llamadas cruzadas específicas. Para obtener más información acerca de `AWSMigrationHubRefactorSpacesFullAccess`, consulte [AWSpolítica administrada: Acceso completo a los espacios del factor de migración de AWS](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSMigrationHubRefactorSpacesFullAccess).



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

Cuando Refactor Spaces crea recursos en tu cuenta, se etiquetan con el identificador de recurso de Refactor Spaces adecuado. Por ejemplo, Transit Gateway creado a partir de`CreateEnvironment`está etiquetado con el`refactor-spaces:environment-id`etiqueta con el ID de entorno como valor. La API de API Gateway creada desde`CreateApplication`está etiquetado con`refactor-spaces:application-id`con el ID de aplicación como valor. Estas etiquetas permiten a Refactor Spaces administrar estos recursos. Si edita o elimina las etiquetas, Refactor Spaces ya no podrá actualizar ni eliminar el recurso.

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

La política de permisos del rol denominada MigrationHubreFactorSpacesServiceRolePolicy permite que Refactor Spaces realice las siguientes acciones en los recursos especificados:

Acciones de Amazon API Gateway  
 `apigateway:PUT`   
 `apigateway:POST`   
 `apigateway:GET`   
 `apigateway:PATCH`   
 `apigateway:DELETE` 

Acciones de 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` 

Acciones de AWS Resource Access Manager  
 `ram:GetResourceShareAssociations`   
 `ram:DeleteResourceShare`   
 `ram:AssociateResourceShare`   
 `ram:DisassociateResourceShare` 

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

A continuación se muestra la política completa que muestra los recursos a los que se aplican las acciones anteriores:

```
{
    "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"
                }
            }
        }
    ]
}
```

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o rol) crear, editar o eliminar un rol vinculado a servicios. Para obtener más información, consulte [Permisos de roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) en la *Guía del usuario de IAM*.

## Creación de un rol vinculado a un servicio para Refactorizar Espacios
<a name="create-slr"></a>

No necesita crear manualmente un rol vinculado a servicios. Al crear recursos de entorno, aplicación, servicio o enrutamiento de Refactor Spaces en elConsola de administración de AWS, elAWS CLI, o elAWSAPI, Refactor Spaces crea automáticamente el rol vinculado al servicio. Para obtener más información acerca de cómo crear un rol vinculado a servicios para Refactorizar Espacios, consulte[Permisos de rol vinculado a servicios en espacios de refactor](#slr-permissions).

Si elimina este rol vinculado al servicio y necesita crearlo de nuevo, puede utilizar el mismo proceso para volver a crear el rol en su cuenta. Al crear recursos de entorno, aplicación, servicio o ruta de Refactor Spaces, Refactor Spaces crea de nuevo el rol vinculado al servicio. 

## Modificación de un rol vinculado a un servicio para Refactorizar espacios
<a name="edit-slr"></a>

Refactor Spaces no le permite editar el rol vinculado al servicio AWSServiceRoleForMigrationHubreFactorSpaces. Después de crear un rol vinculado a servicios, no puede cambiarle el nombre, ya que varias entidades pueden hacer referencia al mismo. Sin embargo, puede editar la descripción del rol mediante IAM. Para obtener más información, consulte [Editar un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) en la *Guía del usuario de IAM.*.

## Eliminación de un rol vinculado a un servicio para Refactorizar Espacios
<a name="delete-slr"></a>

Si ya no necesita utilizar una característica o servicio que requiere un rol vinculado a un servicio, recomendamos que elimine dicho rol. De esta forma no tiene una entidad no utilizada que no se monitorice ni mantenga de forma activa. Sin embargo, debe limpiar los recursos del rol vinculado al servicio antes de eliminarlo manualmente.

**nota**  
Si el servicio Refactor Spaces utiliza el rol cuando intenta eliminar los recursos, la eliminación podría producir un error. En tal caso, espere unos minutos e intente de nuevo la operación.

Para eliminar los recursos de Refactor Spaces utilizados por AWSServiceRoleForMigrationHubreFactorSpaces, utilice la consola de Refactor Spaces para eliminar los recursos o utilizar las operaciones de eliminación de API de los recursos. Para obtener más información acerca de las operaciones de eliminación de la API de, consulte[Referencia de la API de Refactor Spaces](https://docs.aws.amazon.com/migrationhub-refactor-spaces/latest/APIReference/Welcome.html).

**Para eliminar manualmente el rol vinculado a un servicio mediante IAM**

Utilice la consola de IAM, laAWS CLI, o elAWSAPI para eliminar el rol vinculado al servicio AWSServiceRoleForMigrationHubreFatorSpaces. Para obtener más información, consulte [Eliminación de un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) en la *Guía del usuario de IAM*.

## Regiones admitidas para roles vinculados a servicios de Refactor Spaces
<a name="slr-regions"></a>

Refactor Spaces admite el uso de roles vinculados a servicios en todas las regiones en las que el servicio está disponible. Para obtener más información, consulte [Regiones y puntos de enlace de AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html).