【问题标题】:Service is unable to assume a role error - AWS Glue cloudformation creation with JDBC target服务无法承担角色错误 - 使用 JDBC 目标创建 AWS Glue cloudformation
【发布时间】:2021-02-15 00:21:09
【问题描述】:
Resources:
  GlueCrawlerRole:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - glue.amazonaws.com
            Action:
              - 'sts:AssumeRole'
      Path: /service-role/
      ManagedPolicyArns:
        - 'arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole'
      Policies:
        - PolicyName: GlueAccess
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Sid: kmsKeyAccess
                Effect: Allow
                Action:
                 - 'kms:Encrypt'
                 - 'kms:Decrypt'
                 - 'kms:ReEncrypt*'
                 - 'kms:GenerateDataKey*'
                 - 'kms:DescribeKey'
                Resource: !Ref KmsKeyArn
              - Sid: logKmsKey
                Effect: Allow
                Action:
                 - 'logs:AssociateKmsKey'
                Resource: !Sub 'arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws-glue/:*'


GlueCrawler:
    Type: 'AWS::Glue::Crawler'
    Properties:
      Name: !Sub '${AWS::StackName}'
      Role: !GetAtt GlueCrawlerRole.Arn
      DatabaseName: !Sub '${AWS::StackName}-database'
      Targets:
        S3Targets:
          - Path: !Ref MyS3Bucket
        JdbcTargets: 
          - 
            ConnectionName: "XXXXXXX"
            Path: "ABCD/%"
        DatabaseName: "rds-xxxxx-abcd01-private-db"
        SchemaChangePolicy: 
          UpdateBehavior: "UPDATE_IN_DATABASE"
          DeleteBehavior: "DEPRECATE_IN_DATABASE"
        TablePrefix: "aurora_rds_"

服务无法承担角色 arn:aws:iam::xxxxxxxxxx:role/cua-enterprise-data-hub-dev-test-g-GlueCrawlerRole-1FB4KV7YGL1QB。请验证角色的 TrustPolicy(服务:AWSGlue;状态代码:400;错误代码:InvalidInputException;请求 ID:bb1b60a5-3301-40de-81bf-ea78018cffa9)

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation aws-glue


    【解决方案1】:

    您的资源不正确。而不是

    Resource: 'arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws-glue/:*'
    Resource: 'arn:aws:glue:${AWS::Region}:${AWS::AccountId}:*'
    

    应该有(缺失!Sub):

    Resource: !Sub 'arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws-glue/:*'
    Resource: !Sub 'arn:aws:glue:${AWS::Region}:${AWS::AccountId}:*'
    

    【讨论】:

    • 感谢您的评论,但最初,我提供了资源:'*'。但它仍然失败并出现错误“服务无法承担角色 arn:aws:iam::123456789:role/cua-enterprise-data-hub-dev-test-g-GlueCrawlerRole-1FB4KV7YGL1QB。请验证角色的 TrustPolicy (Service :AWSGlue;状态代码:400;错误代码:InvalidInputException;请求 ID:bb1b60a5-3301-40de-81bf-ea78018cffa9)"
    • @Sou 您需要提供完整的模板。您在哪里以及如何使用GlueCrawlerRole
    • 在初始问题中更新
    • @Sou 代码看起来不错。您确定这是正确的代码并且它完全代表您的真实代码吗?另外,是爬虫失败还是胶水作业?
    • 爬虫因假设角色错误而失败。另外,我想提一下,在这个问题中,我添加了 iam:PassRole。在我的实际代码中,该部分不存在。您认为添加 iam:PassRole 会解决此问题吗?
    猜你喜欢
    • 2017-11-20
    • 2019-12-31
    • 2018-09-19
    • 2021-10-10
    • 2019-07-19
    • 2020-04-29
    • 2023-02-18
    • 2020-07-13
    • 2018-08-06
    相关资源
    最近更新 更多