目前我有一个共享的S3存储桶,可以访问特定的关键path(即文件夹)不同的实例。 我已经能够创build实例configuration文件与我的新angular色和testing没有限制访问该文件夹的问题。
我的问题是,有一个已定义的策略的现有通用angular色,我也希望能够包括在我的每个堆栈的新angular色。
在云计算中,是否可以将包含在一个angular色中的策略包含在另一个angular色中,而不必在新angular色中重新定义策略文档?
像下面这样:
"AppTierS3AccessRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "Ref": "existing-policy" } ] } },
“现行政策”是这里的重要组成部分。 我试图find现有政策的尝试和参考,但我有点卡住了。
您可以通过使用托pipe策略来实现此目的。 将定义的策略放在客户pipe理的策略中,然后将定义的策略附加到要使用它的每个angular色。 以后对托pipe策略的任何更改都会立即应用于所有具有托pipe策略的angular色。
您可以通过AWS :: IAM :: ManagedPolicy资源在CloudFormation中创build客户托pipe策略,也可以附加现有托pipe策略。
src: https : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
“AWS :: IAM :: Role”types现在有一个“ManagedPolicyArns”字段,您可以在其中设置此字段。 你只需要抓住ARN(易于从IAM控制台抓取)并将其放置在该字段中。 在下面的示例中,我创build了一个提供只读ECR访问的angular色,以便我的映像可以从ECR中拖出Docker容器。
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
要扩大@ markusk的答案重新:pipe理政策 – 是的,那。
例:
"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": [ ... ] } } }
不,您目前不能在另一个angular色中embedded一个angular色。 我能想到的唯一select是: