

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á.

# Funções de serviço para AWS HealthOmics
<a name="permissions-service"></a>

Uma função de serviço é uma função AWS Identity and Access Management (IAM) que concede permissões para que um AWS serviço acesse recursos em sua conta. Você fornece uma função de serviço AWS HealthOmics ao iniciar um trabalho de importação ou iniciar uma execução.

O HealthOmics console pode criar a função necessária para você. Se você usa a HealthOmics API para gerenciar recursos, crie a função de serviço usando o console do IAM. Para obter mais informações, consulte [Criar uma função para delegar permissões a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).

As funções de serviço devem ter a seguinte política de confiança.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "omics.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

A política de confiança permite que o HealthOmics serviço assuma a função.

**Topics**
+ [Exemplo de políticas de serviço do IAM](#permissions-service-samplepolicies)
+ [CloudFormation Modelo de exemplo](#permissions-service-sampletemplates)

## Exemplo de políticas de serviço do IAM
<a name="permissions-service-samplepolicies"></a>

Nesses exemplos, nomes de recursos e contas IDs são espaços reservados para você substituir por valores reais.

O exemplo a seguir mostra a política de uma função de serviço que você pode usar para iniciar uma execução. A política concede permissões para acessar o local de saída do Amazon S3, o grupo de registros do fluxo de trabalho e o contêiner do Amazon ECR para a execução. 

**nota**  
Se você estiver usando o cache de chamadas para a execução, adicione a localização do cache de execução do Amazon S3 como um recurso nas permissões do s3. 

**Example Política de função de serviço para iniciar uma execução**    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "s3:GetObject",
              "s3:PutObject"
          ],
          "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket1/*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "s3:ListBucket"
          ],
          "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket1"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "logs:DescribeLogStreams",
              "logs:CreateLogStream",
              "logs:PutLogEvents"
          ],
          "Resource": [
              "arn:aws:logs:us-east-1:123456789012:log-group:/aws/omics/WorkflowLog:log-stream:*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "logs:CreateLogGroup"
          ],
          "Resource": [
              "arn:aws:logs:us-east-1:123456789012:log-group:/aws/omics/WorkflowLog:*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "ecr:BatchGetImage",
              "ecr:GetDownloadUrlForLayer",
              "ecr:BatchCheckLayerAvailability"
          ],
          "Resource": [
              "arn:aws:ecr:us-east-1:123456789012:repository/*"
          ]
      }
    ]
}
```

O exemplo a seguir mostra a política de uma função de serviço que você pode usar para um trabalho de importação de loja. A política concede permissões para acessar o local de entrada do Amazon S3.

**Example Função de serviço para trabalho na Reference Store**    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },

        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        }

    ]
}
```

## CloudFormation Modelo de exemplo
<a name="permissions-service-sampletemplates"></a>

O CloudFormation modelo de exemplo a seguir cria uma função de serviço que dá HealthOmics permissão para acessar buckets do Amazon S3 que têm nomes prefixados com`omics-`, e para fazer upload de registros de fluxo de trabalho.

**Example Permissões de armazenamento de referência, Amazon S3 e CloudWatch Logs**  

```
Parameters:
  bucketName:
    Description: Bucket name
    Type: String
    
Resources:
  serviceRole:
    Type: AWS::IAM::Role
    Properties:
      Policies:
        - PolicyName: read-reference
          PolicyDocument:
            Version: 2012-10-17
            Statement:
            - Effect: Allow
              Action:
                - omics:*
              Resource: !Sub arn:${AWS::Partition}:omics:${AWS::Region}:${AWS::AccountId}:referenceStore/*
        - PolicyName: read-s3
          PolicyDocument:
            Version: 2012-10-17
            Statement:
            - Effect: Allow
              Action: 
                - s3:ListBucket
              Resource: !Sub arn:${AWS::Partition}:s3:::${bucketName}
            - Effect: Allow
              Action:
                - s3:GetObject
                - s3:PutObject
              Resource: !Sub arn:${AWS::Partition}:s3:::${bucketName}/*
        - PolicyName: upload-logs
          PolicyDocument:
            Version: 2012-10-17
            Statement:
            - Effect: Allow
              Action: 
                - logs:DescribeLogStreams
                - logs:CreateLogStream
                - logs:PutLogEvents
              Resource: !Sub arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:loggroup:/aws/omics/WorkflowLog:log-stream:*
            - Effect: Allow
              Action: 
                - logs:CreateLogGroup
              Resource: !Sub arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:loggroup:/aws/omics/WorkflowLog:*
      AssumeRolePolicyDocument: |
        {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
            {
              "Action": [
                "sts:AssumeRole"
              ],
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "omics.amazonaws.com"
                ]
              }
            }
          ]
        }
```