현재 다른 인스턴스의 특정 키 경로 (예 : 폴더)에 대한 특정 액세스 권한이있는 공유 S3 버킷이 있습니다. 새 역할로 인스턴스 프로파일을 생성하고 해당 폴더에 대한 액세스 제한 문제를 테스트 할 수 없었습니다.
내 문제는 정의 된 정책이있는 기존의 일반 역할이 있으며 각 스택에 대한 새 역할에 포함시킬 수 있다는 것입니다.
클라우드 형성에서 새로운 역할에 정책 문서를 재정의하지 않고도 한 역할에 정의 된 정책을 다른 역할에 포함시킬 수 있습니까?
다음과 같은 것 :
"AppTierS3AccessRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [ "ec2.amazonaws.com" ]
},
"Action": [ "sts:AssumeRole" ]
}
]
},
"Path": "/",
"Policies": [ { "Ref": "existing-policy" } ]
}
},
“기존 정책”은 여기서 중요한 부분입니다. 나는 시도하고 참조하기 위해 기존 정책의 비결을 찾으려고했지만 조금 붙어 있습니다.
답변
src : https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
AWS::IAM::Role
유형은 지금이 ManagedPolicyArns
당신이 설정할 수 있습니다 필드. ARN (IAM 콘솔에서 쉽게 잡을 수 있음)을 잡고 해당 필드에 배치하면됩니다. 아래 예에서는 이미지가 ECR에서 도커 컨테이너를 가져올 수 있도록 읽기 전용 ECR 액세스를 제공하는 역할을 만들었습니다.
ecrRole:
Type: AWS::IAM::Role
Properties:
Path: "/"
ManagedPolicyArns:
- "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action:
- sts:AssumeRole
답변
관리 형 정책 을 사용하여이를 달성 할 수 있습니다 . 공유하려는 정의 된 정책을 고객 관리 형 정책에 넣은 다음 해당 정의 된 정책을 사용하려는 각 역할에 연결하십시오. 관리 형 정책에 대한 향후 변경 사항은 관리 형 정책이 연결된 모든 역할에 즉시 적용됩니다.
AWS :: IAM :: ManagedPolicy 리소스를 통해 CloudFormation에서 고객 관리 형 정책을 생성 하거나 기존 관리 형 정책을 첨부 할 수 있습니다.
답변
@markusk의 답변을 다시 확장하려면 관리 형 정책-그렇습니다.
예:
"ManagedPolicy": {
"Type": "AWS::IAM::ManagedPolicy",
"Properties": {
"Description": "something descriptive",
"Groups": [ ... ref(s) for groups ... ],
"Roles: [{"Ref":"AppTierS3AccessRole"}],
"Users": [ ... ref(s) for users ... ],
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
...
]
}
}
}
답변
아니요, 현재 한 역할을 다른 역할에 포함시킬 수 없습니다. 내가 생각할 수있는 유일한 대안은 다음과 같습니다.
- AWS :: IAM :: InstanceProfile을 사용하여 새 인스턴스 프로파일을 생성 하고 기존 일반 역할을 할당하십시오.
- CloudFormation 스택을 생성하기 전에 일반 역할을 복제하는 스크립트를 실행하십시오. 예를 들어 새 역할을 생성하고 기존 일반 역할에 대한 모든 정책을 나열한 다음 새 역할에서 다시 생성합니다. 그런 다음 템플릿 의 새 AWS :: IAM :: InstanceProfile 리소스에 새 역할을 할당하고 EC2 인스턴스 또는 시작 구성에 사용할 수 있습니다.