7

Seguendo esattamente le istruzioni passo-passo su this page Sto tentando di esportare il contenuto di una delle mie tabelle DynamoDB in un bucket S3. Creo una pipeline esattamente come indicato ma non riesce a funzionare. Sembra che abbia problemi nell'identificare/eseguire una risorsa EC2 per fare l'esportazione. Quando accedo a EMR tramite AWS Console, visualizzo voci come questa:Esportazione automatica da AWS DynamoDB a S3 con "ruolo/DataPipelineDefaultRole non valido"

Cluster: [email protected]_2015-03-06T00:33:04Terminated with errorsEMR service role arn:aws:iam::...:role/DataPipelineDefaultRole is invalid 

Perché ricevo questo messaggio? Devo configurare/configurare qualcos'altro per l'esecuzione della pipeline?

AGGIORNAMENTO: Sotto IAM->Roles in consolle AWS sto vedendo questo per DataPipelineDefaultResourceRole:

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
    "Effect": "Allow", 
    "Action": [ 
     "s3:List*", 
     "s3:Put*", 
     "s3:Get*", 
     "s3:DeleteObject", 
     "dynamodb:DescribeTable", 
     "dynamodb:Scan", 
     "dynamodb:Query", 
     "dynamodb:GetItem", 
     "dynamodb:BatchGetItem", 
     "dynamodb:UpdateTable", 
     "rds:DescribeDBInstances", 
     "rds:DescribeDBSecurityGroups", 
     "redshift:DescribeClusters", 
     "redshift:DescribeClusterSecurityGroups", 
     "cloudwatch:PutMetricData", 
     "datapipeline:PollForTask", 
     "datapipeline:ReportTaskProgress", 
     "datapipeline:SetTaskStatus", 
     "datapipeline:PollForTask", 
     "datapipeline:ReportTaskRunnerHeartbeat" 
    ], 
    "Resource": ["*"] 
    }] 
} 

E questo per DataPipelineDefaultRole:

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
    "Effect": "Allow", 
    "Action": [ 
     "s3:List*", 
     "s3:Put*", 
     "s3:Get*", 
     "s3:DeleteObject", 
     "dynamodb:DescribeTable", 
     "dynamodb:Scan", 
     "dynamodb:Query", 
     "dynamodb:GetItem", 
     "dynamodb:BatchGetItem", 
     "dynamodb:UpdateTable", 
     "ec2:DescribeInstances", 
     "ec2:DescribeSecurityGroups", 
     "ec2:RunInstances", 
     "ec2:CreateTags", 
     "ec2:StartInstances", 
     "ec2:StopInstances", 
     "ec2:TerminateInstances", 
     "elasticmapreduce:*", 
     "rds:DescribeDBInstances", 
     "rds:DescribeDBSecurityGroups", 
     "redshift:DescribeClusters", 
     "redshift:DescribeClusterSecurityGroups", 
     "sns:GetTopicAttributes", 
     "sns:ListTopics", 
     "sns:Publish", 
     "sns:Subscribe", 
     "sns:Unsubscribe", 
     "iam:PassRole", 
     "iam:ListRolePolicies", 
     "iam:GetRole", 
     "iam:GetRolePolicy", 
     "iam:ListInstanceProfiles", 
     "cloudwatch:*", 
     "datapipeline:DescribeObjects", 
     "datapipeline:EvaluateExpression" 
    ], 
    "Resource": ["*"] 
    }] 
} 

fare queste devono essere modificati in qualche modo?

+0

Puoi aggiungere quali sono le tue norme IAM? – mkobit

+0

@MikeKobit Potresti spiegarmi come posso ottenere questi criteri dalla console Web AWS? grazie –

+0

Verifica i ruoli dell'account e i relativi criteri IAM. Vedi [Impostazione dei ruoli IAM] (http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) – mkobit

risposta

2

C'è una domanda simile in AWS forum e sembra che è legato a un problema con le politiche gestite

https://forums.aws.amazon.com/message.jspa?messageID=606756

In questa domanda, si consiglia di utilizzare le politiche in linea specifiche per le politiche di accesso e fiducia al definire quei ruoli cambiando alcune autorizzazioni. Stranamente, le politiche in linea specifici possono essere trovati a

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html

1

Ho incontrato lo stesso errore.

In IAM, collegare la politica AWSDataPipelineRole riuscito a DataPipelineDefaultRole

ho anche dovuto aggiornare la relazione di trust al seguente (EC2 necessaria che non è nella documentazione):

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Principal": { 
     "Service": [ 
      "ec2.amazonaws.com", 
      "elasticmapreduce.amazonaws.com", 
      "datapipeline.amazonaws.com" 
     ] 
     }, 
     "Action": "sts:AssumeRole" 
    } 
    ] 
} 
0

ho avuto la stesso problema. Le politiche gestite erano corrette nel mio caso, ma dovevo aggiornare le relazioni di trust per entrambi i ruoli DataPipelineDefaultRole e DataPipelineDefaultResourceRole utilizzando la documentazione Gonfva collegata a sopra in quanto non erano aggiornati.

Problemi correlati