나는 노력하고있다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_name
IAM 역할 이름을 사용해야 합니다. 예를 들어 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