You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/enos/ipv6-aws-host.md.md

5.3 KiB

running ipv6-only enos tests without an ipv6 connection

  1. create ipv6-enabled vpc
  2. create ipv6-enabled subnet
  3. create internet gateway and route
    • likely needs more detail
  4. create t2-medium instance
    • attach the vpc
    • add public ipv4
    • add public ipv6
    • use at least 20gb storage
  5. create a new policy and attach it to the ec2 instance
    {
    	"Version": "2012-10-17",
    	"Statement": [
    		{
    			"Sid": "VisualEditor0",
    			"Effect": "Allow",
    			"Action": [
    				"ec2:DescribeImages",
    				"ec2:DescribeInstanceTypeOfferings",
    				"ec2:DescribeAvailabilityZones",
    				"ec2:CreateVpc",
    				"kms:CreateKey",
    				"ec2:CreateTags",
    				"kms:DescribeKey",
    				"ec2:DescribeVpcs",
    				"kms:ScheduleKeyDeletion",
    				"kms:GetKeyPolicy",
    				"kms:GetKeyRotationStatus",
    				"kms:ListResourceTags",
    				"kms:CreateAlias",
    				"ec2:DeleteVpc",
    				"ec2:ModifyVpcAttribute",
    				"kms:ListAliases",
    				"ec2:DescribeVpcAttribute",
    				"kms:DeleteAlias",
    				"ec2:CreateSubnet",
    				"ec2:CreateInternetGateway",
    				"ec2:CreateSecurityGroup",
    				"ec2:DescribeSecurityGroups",
    				"ec2:AttachInternetGateway",
    				"ec2:DescribeSubnets",
    				"ec2:DescribeNetworkInterfaces",
    				"ec2:DeleteSubnet",
    				"ec2:DeleteSecurityGroup",
    				"ec2:RevokeSecurityGroupEgress",
    				"ec2:ModifySubnetAttribute",
    				"ec2:DetachInternetGateway",
    				"ec2:AuthorizeSecurityGroupIngress",
    				"ec2:DeleteInternetGateway",
    				"ec2:AuthorizeSecurityGroupEgress",
    				"ec2:DescribeInternetGateways",
    				"ec2:DescribeRouteTables",
    				"ec2:CreateRoute",
    				"ec2:RevokeSecurityGroupIngress",
    				"iam:CreateUser",
    				"iam:DeleteUser",
    				"iam:TagUser",
    				"iam:GetUser",
    				"iam:ListGroupsForUser",
    				"iam:CreateAccessKey",
    				"iam:DeleteAccessKey",
    				"iam:PutUserPolicy",
    				"iam:GetUserPolicy",
    				"iam:DeleteUserPolicy",
    				"ec2:DeleteRoute",
    				"ec2:RunInstances",
    				"ec2:DescribeInstances",
    				"rds:CreateDBSubnetGroup",
    				"iam:CreateRole",
    				"elasticloadbalancing:DescribeTargetGroups",
    				"ec2:TerminateInstances",
    				"ec2:DescribeInstanceTypes",
    				"rds:DescribeDBSubnetGroups",
    				"iam:GetRole",
    				"elasticloadbalancing:CreateTargetGroup",
    				"elasticloadbalancing:DeleteTargetGroup",
    				"rds:DeleteDBSubnetGroup",
    				"iam:ListInstanceProfilesForRole",
    				"iam:DeleteRole",
    				"ec2:DescribeTags",
    				"rds:ListTagsForResource",
    				"iam:ListRolePolicies",
    				"elasticloadbalancing:AddTags",
    				"ec2:DescribeInstanceAttribute",
    				"rds:CreateDBInstance",
    				"iam:ListAttachedRolePolicies",
    				"elasticloadbalancing:ModifyTargetGroupAttributes",
    				"rds:DeleteDBInstance",
    				"ec2:DescribeVolumes",
    				"rds:AddTagsToResource",
    				"iam:PutRolePolicy",
    				"iam:DeleteRolePolicy",
    				"iam:CreateInstanceProfile",
    				"iam:DeleteInstanceProfile",
    				"elasticloadbalancing:DescribeTargetGroupAttributes",
    				"ec2:DescribeInstanceCreditSpecifications",
    				"rds:DescribeDBInstances",
    				"iam:GetRolePolicy",
    				"iam:GetInstanceProfile",
    				"elasticloadbalancing:DescribeTags",
    				"iam:RemoveRoleFromInstanceProfile",
    				"iam:AddRoleToInstanceProfile",
    				"elasticloadbalancing:DescribeLoadBalancers",
    				"elasticloadbalancing:RegisterTargets",
    				"elasticloadbalancing:CreateLoadBalancer",
    				"elasticloadbalancing:DeregisterTargets",
    				"elasticloadbalancing:ModifyLoadBalancerAttributes",
    				"elasticloadbalancing:DeleteLoadBalancer",
    				"elasticloadbalancing:DescribeLoadBalancerAttributes",
    				"elasticloadbalancing:CreateListener",
    				"elasticloadbalancing:DescribeListeners",
    				"elasticloadbalancing:DeleteListener",
    				"ec2:AssociateRouteTable",
    				"ec2:DisassociateRouteTable",
    				"ec2:CreateIpam",
    				"ec2:DeleteIpam",
    				"ec2:ModifyIpam",
    				"ec2:DescribeIpams",
    				"ec2:CreateIpamPool",
    				"ec2:DeleteIpamPool",
    				"ec2:ModifyIpamPool",
    				"ec2:DescribeIpamPools",
    				"ec2:AllocateIpamPoolCidr",
    				"ec2:ProvisionIpamPoolCidr",
    				"s3:CreateBucket",
    				"s3:DeleteBucket",
    				"s3:ListBucket",
    				"s3:ListAllMyBuckets",
    				"s3:GetAccelerateConfiguration",
    				"s3:PutAccelerateConfiguration",
    				"s3:GetLifecycleConfiguration",
    				"s3:PutLifecycleConfiguration",
    				"s3:GetReplicationConfiguration",
    				"s3:PutReplicationConfiguration",
    				"s3:GetBucket*",
    				"s3:PutBucket*",
    				"s3:GetEncryptionConfiguration",
    				"s3:PutEncryptionConfiguration",
    				"ec2:AttachNetworkInterface",
    				"ec2:DetachNetworkInterface",
    				"iam:CreateServiceLinkedRole",
    				"iam:DeleteServiceLinkedRole",
    				"iam:PassRole"
    			],
    			"Resource": "*"
    		}
    	]
    }
    
  6. change sudo password
    • sudo passwd ec2-user
    • enter new password (doesn't need to be secure)
  7. install git
    • sudo yum install git
  8. install homebrew
    • https://brew.sh/
      • follow post-install instructions given by homebrew in the cli (install gcc and other utils)
  9. install enos deps
  10. you should now be able to run enos instances from the enos directory