

O AWS Migration Hub Refactor Spaces está em versão de demonstração e sujeito a alterações.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Uso de funções vinculadas ao serviço para espaços de refatoração
<a name="using-service-linked-roles"></a>

Uso do AWS Migration Hub Refactor SpacesAWS Identity and Access Management(IAM)[Funções vinculadas ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role). Uma função vinculada ao serviço é um tipo exclusivo de função do IAM vinculada diretamente ao Refatorar Spaces. As funções vinculadas ao serviço são predefinidas pelo Refatorar Spaces e incluem todas as permissões que o serviço requer para chamar de outraAWSServiços da em seu nome. 

Uma função vinculada ao serviço facilita a configuração do Refatorar Spaces, pois você não precisa adicionar as permissões necessárias manualmente. O Refactor Spaces define as permissões de suas funções vinculadas ao serviço e, a menos que seja definido em contrário, somente os Espaços de Refatoração podem assumir suas funções. As permissões definidas incluem a política de confiança e a política de permissões, e essa política não pode ser anexada a nenhuma outra entidade do IAM.

Uma função vinculada ao serviço poderá ser excluída somente após excluir seus recursos relacionados. Isso protege seus recursos do Refatorar Spaces, pois você não pode remover por engano as permissões para acessar os recursos.

Para obter informações sobre outros serviços compatíveis com funções vinculadas a serviços, consulte [Serviços da AWS compatíveis com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) e procure os serviços que apresentam **Yes** (Sim) na coluna **Service-Linked Role** (Função vinculada a serviço). Escolha um **Sim** com um link para exibir a documentação da função vinculada a serviço desse serviço.

## Permissões de função vinculada ao serviço para espaços de refatoração
<a name="slr-permissions"></a>

O Refatorar Spaces usa a função vinculada ao serviço chamada**AWSServiceRoleFormigrationHubreFactorSpaces**e o associa com o**MigraçãoHubreFactorspacesserVicerolePolicy**Política do IAM — Fornece acesso aAWSrecursos gerenciados ou usados pelo AWS Migration Hub Refactor Spaces.

A função vinculada ao serviço AWSServiceRoleForMigrationHubreFactorSpaces confia nos seguintes serviços para assumir a função:
+ `refactor-spaces.amazonaws.com`

Veja a seguir o Nome de recurso da Amazon (ARN) para AWSServiceRoleForMigrationHubreFactorSpaces.

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

Refatorar Spaces usa o**AWSServiceRoleFormigrationHubreFactorSpaces**função vinculada ao serviço ao executar alterações entre contas. Essa função deve estar presente em sua conta para usar Refatorar Spaces. Se não estiver presente, Refatorar Spaces o criará durante as seguintes chamadas de API:
+ `CreateEnvironment`
+ `CreateService`
+ `CreateApplication`
+ `CreateRoute`

Você deve ter permissões do `iam:CreateServiceLinkedRole` para criar a função vinculada ao serviço. Se a função vinculada ao serviço não existir na sua conta e não puder ser criada, o`Create`as chamadas falharão. Você deve criar a função vinculada ao serviço no console do IAM antes de usar Refactor Spaces, a menos que você esteja usando o console Refactor Spaces. 

O Refatorar Spaces não usa a função vinculada ao serviço ao fazer alterações na conta atual conectada. Por exemplo, quando um aplicativo é criado, o Refactor Spaces atualiza todas as VPCs no ambiente para que elas possam se comunicar com a VPC recém-adicionada. Se as VPCs estiverem em outras contas, Refatorar Spaces usará a função vinculada ao serviço e o`ec2:CreateRoute`permissão para atualizar as tabelas de rotas em outras contas.

Para expandir ainda mais o exemplo de criação de aplicativo, ao criar um aplicativo, o Refactor Spaces atualiza as tabelas de rotas que estão na nuvem privada virtual (VPC) fornecida na`CreateApplication`Chame. Dessa forma, a VPC pode se comunicar com outras VPCs no ambiente. 

O chamador deve ter o`ec2:CreateRoute`permissão que usamos para atualizar as tabelas de rotas. Essa permissão existe na função vinculada ao serviço, mas Refatorar Spaces não usa a função vinculada ao serviço na conta do chamador para obter essa permissão. Em vez disso, o chamador deve ter o`ec2:CreateRoute`Permissão. Caso contrário, a chamada falhará. 

Você não pode usar a função vinculada ao serviço para escalar seus privilégios. Sua conta já deve ter as permissões na função vinculada ao serviço para fazer as alterações na conta de chamada. O`AWSMigrationHubRefactorSpacesFullAccess`política gerenciada, juntamente com uma política que concede as permissões extras necessárias, define todas as permissões necessárias para criar recursos Refatorar Spaces. A função vinculada ao serviço é um subconjunto dessas permissões que é usado para chamadas específicas entre contas. Para obter mais informações sobre o `AWSMigrationHubRefactorSpacesFullAccess`, consulte [AWSpolítica gerenciada: AWSMigrationHubreFactorSpacesFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSMigrationHubRefactorSpacesFullAccess).



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

Quando Refatorar Spaces cria recursos em sua conta, eles são marcados com o ID de recurso Refatorar Spaces apropriado. Por exemplo, o Transit Gateway criado a partir de`CreateEnvironment`está marcado com o`refactor-spaces:environment-id`marque com o ID do ambiente como o valor. A API do API Gateway API do`CreateApplication`está marcado com`refactor-spaces:application-id`com o ID do aplicativo como o valor. Essas tags permitem que o Refatorate Spaces gerencie esses recursos. Se você editar ou remover as tags, Refatorar Spaces não poderão mais atualizar ou excluir o recurso.

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

A política de permissões da função chamada MigrationHubreFactorsAcesseRolePolicy permite que o Refactor Spaces conclua as seguintes ações nos recursos especificados:

Ações do Amazon API Gateway  
 `apigateway:PUT`   
 `apigateway:POST`   
 `apigateway:GET`   
 `apigateway:PATCH`   
 `apigateway:DELETE` 

Ações do 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` 

Ações do AWS Resource Access Manager  
 `ram:GetResourceShareAssociations`   
 `ram:DeleteResourceShare`   
 `ram:AssociateResourceShare`   
 `ram:DisassociateResourceShare` 

Ações do 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` 

Veja a seguir a política completa que mostra a quais recursos as ações anteriores se aplicam:

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

Você deve configurar permissões para que uma entidade do IAM (por exemplo, um usuário, grupo ou função) crie, edite ou exclua uma função vinculada ao serviço. Para obter mais informações, consulte [Permissões de função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) no *Guia do usuário do IAM*.

## Criar uma função vinculada ao serviço para espaços de refatoração
<a name="create-slr"></a>

Você não precisa criar manualmente uma função vinculada a serviço. Quando você cria recursos de ambiente, aplicativo, serviço ou roteamento de espaços de refatoração naConsole de gerenciamento da AWS, oAWS CLI, ou oAWSA API do Refactor Spaces cria a função vinculada ao serviço para você. Para obter mais informações sobre a criação de uma função vinculada ao serviço para espaços de refatoração, consulte[Permissões de função vinculada ao serviço para espaços de refatoração](#slr-permissions).

Se você excluir essa função vinculada ao serviço e precisar criá-la novamente, poderá usar esse mesmo processo para recriar a função em sua conta. Quando você cria recursos de ambiente, aplicativo, serviço ou rota do Refatorar Spaces, o Refatorar Spaces cria a função vinculada ao serviço novamente. 

## Editar uma função vinculada ao serviço para espaços de refatoração
<a name="edit-slr"></a>

O Refactor Spaces não permite que você edite a função vinculada ao serviço AWSServiceRoleForMigrationHubreFactorSpaces. Depois que criar uma função vinculada ao serviço, você não poderá alterar o nome da função, pois várias entidades podem fazer referência a ela. No entanto, você poderá editar a descrição da função usando o IAM. Para obter mais informações, consulte [Editar uma função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) no *Guia do usuário do IAM*.

## Excluir uma função vinculada ao serviço para espaços de refatoração
<a name="delete-slr"></a>

Se você não precisar mais usar um recurso ou serviço que requer uma função vinculada a serviço, é recomendável excluí-la. Dessa forma, você não tem uma entidade não utilizada que não seja monitorada ativamente ou mantida. No entanto, você deve limpar os recursos de sua função vinculada ao serviço antes de excluí-la manualmente.

**nota**  
Se o serviço Refatorar Spaces estiver usando a função quando você tentar excluir os recursos, a exclusão poderá falhar. Se isso acontecer, espere alguns minutos e tente a operação novamente.

Para excluir os recursos Refatorar Spaces usados por AWSServiceRoleFormigrationHubreFactorSpaces, use o console Refactor Spaces para excluir os recursos ou use as operações de API de exclusão para os recursos. Para obter mais informações sobre as operações de API de exclusão, consulte[Referência de API do Refactor Spaces](https://docs.aws.amazon.com/migrationhub-refactor-spaces/latest/APIReference/Welcome.html).

**Como excluir manualmente a função vinculada ao serviço usando o IAM**

Use o console do IAM, oAWS CLI, ou oAWSAPI para excluir a função vinculada ao serviço AWSServiceRoleForMigrationHubreFactorSpaces. Para obter mais informações, consulte [Excluir uma função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) no *Guia do usuário do IAM*.

## Regiões compatíveis com funções vinculadas ao serviço do Refatorar Spaces
<a name="slr-regions"></a>

O Refactor Spaces oferece suporte a funções vinculadas a serviços em todas as regiões da em que o serviço está disponível. Para obter mais informações, consulte [Regiões e endpoints do AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html).