Ansible을 사용하여 IAM 역할로 EC2 인스턴스 시작

Ansible을 사용하여 IAM 역할로 EC2 인스턴스 시작

나는 노력하고있다IAM 역할로 인스턴스 시작사용하여앤서블.

하지만 어떻게 해야 할지 모르겠습니다.

가능한지 아는 사람 있나요?

Ansible을 사용할 수 없는 경우. 나는 그것을 시도한다보토

답변1

http://docs.ansible.com/ec2_module.html

instance_profile_name (1.3에 추가됨):
사용할 IAM 인스턴스 프로필의 이름입니다. Boto 라이브러리는 2.5.0 이상이어야 합니다.

답변2

- name: Get Instance ID
  debug: var=ec2_id

- name: set IAM ROLE
  ec2_instance:
    region: eu-west-3
    aws_access_key: "{{ package_aws_access_key }}"
    aws_secret_key: "{{ package_aws_secret_key }}"  
    instance_ids:
        - "{{ ec2_id }}"
    instance_role: "{{ iam_role }}"
  delegate_to: localhost

답변3

우선 instance_profile_nameIAM 역할 이름을 사용해야 합니다. 예를 들어 IAM 역할 "webserver"를 생성한 경우 "arn:aws:iam::123456789012:instance-profile/webserver"를 사용합니다 instance_profile_name(계정과 일치하도록 arn 편집).

올바른 신뢰 정책 주체도 사용해야 합니다.

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

답변4

iam_role아래 작업을 테스트하고 인스턴스에 연결할 수 있습니다 . 인스턴스 이름으로는 시도하지 않았지만 작동할 것이라고 생각합니다.

- name: Get Instance ID debug: 
   var=ec2_id

- name: set IAM ROLE 
  ec2_instance: 
    region: eu-west-3 
    aws_access_key: "{{ package_aws_access_key }}"
    aws_secret_key: "{{ package_aws_secret_key }}"
    instance_ids: 
      - "{{ ec2_id }}" 
    instance_role: "{{ iam_role }}" 
  delegate_to: localhost

관련 정보