잘못된 IamInstanceProfile로 인해 시작 구성을 생성할 수 없음

잘못된 IamInstanceProfile로 인해 시작 구성을 생성할 수 없음

시작 구성 항목을 생성하려고 하면 다음 오류가 발생합니다.

시작 구성 문제: 작업을 호출할 때 오류가 발생했습니다(ValidationError): 잘못된 IamInstanceProfile:AWS_EC2_INSTANCE_PROFILE_ROLE

boto 3을 사용하여 이러한 유형의 코드를 실행합니다.

self.as_client.create_launch_configuration(
                KeyName=f"{self.vpcid}-{self.profile_name}.pem",
                IamInstanceProfile=self.inst_prof_name,
                ImageId=self.ec2_inst.ami,
                InstanceType=self.ec2_inst.type,
                LaunchConfigurationName=self.ec2_inst.lc_name,
                SecurityGroups=[x.id for x in self.sec_groups.values()],
                UserData=userdata,
            )

2개의 로컬 관리형 정책을 생성하여 역할에 연결하고 해당 역할을 인스턴스 프로필에 할당했습니다. (boto3는 명시적으로 시도하는 경우를 제외하고 역할에서 로컬로 관리되는 정책을 보는 것을 허용하지 않고 관리되는 AWS 정책만 보는 것을 허용하는 것 같습니다.)

print(iam_client.get_role_policy(RoleName="EC2AppRole",PolicyName="CloudWatchSendPolicy"))
print(iam_client.get_role_policy(RoleName="EC2AppRole",PolicyName="AwsSecretsPolicy"))

정책 세부정보가 포함된 역할은 다음과 같습니다.

== 역할: EC2AppRole ==

{'RoleName': 'EC2AppRole', 'PolicyName': 'CloudWatchSendPolicy', 'PolicyDocument': {'Version': '2012-10-17', 'Statement': [{'Action': ['autoscaling:Describe* ', '클라우드워치:', '로그:', 'sns:'], '효과': '허용', '리소스': ''}]},

{'RoleName': 'EC2AppRole', 'PolicyName': 'AwsSecretsPolicy', 'PolicyDocument': {'Version': '2012-10-17', 'Statement': {'Effect': 'Allow', 'Action' : ['secretsmanager:Describe*', 'secretsmanager:Get*', 'secretsmanager:List*'], '리소스': '*'}},

인스턴스 프로필은 괜찮은 것 같습니다.

== 인스턴스 프로파일 == {'경로': '/', 'InstanceProfileName': 'AWS_EC2_INSTANCE_PROFILE_ROLE', 'InstanceProfileId': 'AIPAXQXBO3GJ2LGTKDJ3L', 'Arn': 'arn:aws:iam::516942649747:instance-profile/AWS_EC2_INSTANCE_PROFILE_ROLE ', 'CreateDate': datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo=tzutc()), 'Roles': [{'Path': '/', 'RoleName': 'EC2AppRole' , 'RoleId': 'AROAXQXBO3GJ2AUOHJMVV', 'Arn': 'arn:aws:iam::516942649747:role/EC2AppRole', 'CreateDate': datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo= tzutc()), 'AssumeRolePolicyDocument': {'Version': '2012-10-17', 'Statement': [{'Effect': 'Allow', 'Principal': {'Service': 'ec2.amazonaws. com'}, '작업': 'sts:AssumeRole'}]}}]}

죄송합니다. 이 게시물의 형식을 올바르게 지정하는 방법을 잘 모르겠습니다.

명확히 하는 데 도움이 되도록 공유할 수 있는 정보가 있습니까?

제가 알 수 있는 한 최선을 다해 create_launch_configuration 호출의 모든 내용이 정확한지 테스트했습니다.

답변1

웨이터를 이용하세요:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#waiters

또는time.sleep(x)

리소스를 사용할 수 있는지 확인합니다.

(자체 승인을 기다립니다.) - 초기 테스트 결과 대기 문제인 것으로 나타났습니다.

관련 정보