TBD

仕事の事・日常の事

AWSクロスアカウントのVPC Peering設定で、AssumeRole出来ずにハマった話

CloudFormationを利用して、クロスアカウントでVPC Peering接続設定(AWS::EC2::VPCPeeringConnection)を追加しようとしたところ、 以下のエラーメッセージでAssumeRole出来ずにハマった。

API: ec2:AcceptVpcPeeringConnection User: arn:aws:iam::[requester account ID]:user/[IAM User] is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::[accepter account ID]:role/[IAM Role]

CloudFormationを利用しているrequester側のIAM Userに、sts:AssumeRoleの権限がなかったことが原因だった。 sts:AssumeRoleポリシーを付与したIAM Groupを作成して、IAM Userを所属させることで解決した。

Parameters:
  PeerRoleArn:
    Type: String
    Default: 'arn:aws:iam::[accepter account ID]:role/[IAM Role]'

Resources:
  VpcPeeringSettingsGroup:
    Type: AWS::IAM::Group
    Properties: 
      GroupName: VPC-Peering-Settings
      Path: /
      Policies: 
        - PolicyName: !Sub VPC-Peering-${EnvTag}
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Action: 'sts:AssumeRole'
                Effect: Allow
                Resource: !Ref PeerRoleArn

設定時、参考にしたのはこちら。

docs.aws.amazon.com

docs.aws.amazon.com