New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
如何將 IAM 管理政策連接至 AWS CloudFormation 中的 IAM 角色?
我想要將現有或新的 AWS Identity and Access Management (IAM) 管理政策新增至 AWS CloudFormation 中的新的或現有 IAM 角色。
簡短說明
若要將現有或新的 IAM 管理政策新增至新的 IAM 角色資源,請使用資源類型為 AWS::IAM::Role 的 ManagedPolicyArns 屬性。若要將新的 IAM 管理政策新增至現有 IAM 角色資源,請使用資源類型為 AWS::IAM::ManagedPolicy 的 Roles 屬性。
您的 IAM 管理政策可以是 AWS 管理政策或客戶管理政策。
**重要事項:**您最多可以將 10 項管理政策連接至 IAM 角色或使用者。每個管理政策的大小不得超過 6,144 個字元。如需相關資訊,請參閱 IAM 和 STS Quotas。
根據您的範例,完成下列其中一個區段中的各項步驟:
- 將現有的 IAM 管理政策新增至新的 IAM 角色
- 將新的 IAM 管理政策新增至新的 IAM 角色
- 將新的 IAM 管理政策新增至現有 IAM 角色
解決方案
將現有的 IAM 管理政策新增至新的 IAM 角色
1. 在您的 AWS CloudFormation 範本中,建立一個或多個參數,您可以用來傳遞 IAM 管理政策的 Amazon Resource Name (ARN)。請參閱下列 JSON 和 YAML 範例。
JSON:
{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "awsExampleManagedPolicyParameterOne": { "Type": "String", "Description": "ARN of the first IAM Managed Policy to add to the role" }, "awsExampleManagedPolicyParameterTwo": { "Type": "String", "Description": "ARN of the second IAM Managed Policy to add to the role" } } }
YAML:
Parameters: awsExampleManagedPolicyParameterOne: Type: String Description: 'ARN of the first IAM Managed Policy to add to the role' awsExampleManagedPolicyParameterTwo: Type: String Description: 'ARN of the second IAM Managed Policy to add to the role'
2. 在範本的「資源」區段中,針對 AWS::IAM::Role 類型的資源,將 Ref 設為您在步驟 1 中建立的參數。針對此範例,這些是 awsExampleManagedPolicyParameterOne 和 awsExampleManagedPolicyParameterTwo 的參數。請參閱下列 JSON 和 YAML 範例。
JSON:
{ "Resources": { "RootRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "ManagedPolicyArns": [ { "Ref": "awsExampleManagedPolicyParameterOne" }, { "Ref": "awsExampleManagedPolicyParameterTwo" } ] } } } }
YAML:
Resources: RootRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - ec2.amazonaws.com Action: - 'sts:AssumeRole' Path: / ManagedPolicyArns: - !Ref awsExampleManagedPolicyParameterOne - !Ref awsExampleManagedPolicyParameterTwo
3. 若要將現有的 IAM 管理政策套用至新的 IAM 角色,請根據修改的 AWS CloudFormation 範本建立堆疊或更新現有堆疊。
將新的 IAM 管理政策新增至新的 IAM 角色
1. 在您的 AWS CloudFormation 範本中,使用 AWS::IAM::ManagedPolicy 資源建立新政策。請參閱下列 JSON 和 YAML 範例。
JSON:
{ "SampleManagedPolicy": { "Type": "AWS::IAM::ManagedPolicy", "Properties": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllUsersToListAccounts", "Effect": "Allow", "Action": [ "iam:ListAccountAliases", "iam:ListUsers", "iam:GetAccountSummary" ], "Resource": "*" } ] } } } }
YAML:
SampleManagedPolicy: Type: AWS::IAM::ManagedPolicy Properties: PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowAllUsersToListAccounts Effect: Allow Action: - iam:ListAccountAliases - iam:ListUsers - iam:GetAccountSummary Resource: "*"
2. 使用 !Ref 邏輯 ID 語法,將 IAM 管理政策資源連接至 AWS::IAM::Role 資源。
例如,將 Ref 設為您在步驟 1 中建立的資源邏輯 ID (SampleManagedPolicy)。請參閱下列 JSON 和 YAML 範例。
JSON:
{ "RootRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "ManagedPolicyArns": [ { "Ref": "SampleManagedPolicy" } ] } } }
YAML:
RootRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - ec2.amazonaws.com Action: - 'sts:AssumeRole' Path: / ManagedPolicyArns: - !Ref SampleManagedPolicy
3. 若要將新的 IAM 管理政策套用至新的 IAM 角色,請根據修改的 AWS CloudFormation 範本建立堆疊或更新現有堆疊。
將新的 IAM 管理政策新增至現有 IAM 角色
1. 在 AWS CloudFormation 範本中,建立可用來傳遞現有角色名稱的參數。請參閱下列 JSON 和 YAML 範例。
JSON:
{ "Parameters": { "awsExampleRolesParameter": { "Type": "CommaDelimitedList", "Description": "Names of existing Roles you want to add to the newly created Managed Policy" } } }
YAML:
Parameters: awsExampleRolesParameter: Type: CommaDelimitedList Description: Names of existing Roles you want to add to the newly created Managed Policy
2. 在範本的「資源」區段中,針對類型為 AWS::IAM::ManagedPolicy 的資源,將 Ref 設為您在步驟 1 中建立的參數 (awsExampleRolesParameter)。請參閱下列 JSON 和 YAML 範例。
JSON:
{ "Resources": { "SampleManagedPolicy": { "Type": "AWS::IAM::ManagedPolicy", "Properties": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllUsersToListAccounts", "Effect": "Allow", "Action": [ "iam:ListAccountAliases", "iam:ListUsers", "iam:GetAccountSummary" ], "Resource": "*" } ] }, "Roles": { "Ref": "awsExampleRolesParameter" } } } } }
YAML:
Resources: SampleManagedPolicy: Type: 'AWS::IAM::ManagedPolicy' Properties: PolicyDocument: Version: '2012-10-17' Statement: - Sid: AllowAllUsersToListAccounts Effect: Allow Action: - 'iam:ListAccountAliases' - 'iam:ListUsers' - 'iam:GetAccountSummary' Resource: '*' Roles: !Ref awsExampleRolesParameter
3. 若要將新的 IAM 管理政策套用至現有的 IAM 角色,請根據修改後的 AWS CloudFormation 範本建立堆疊或 更新現有堆疊。
相關內容
- 已提問 4 個月前lg...
- 已提問 2 年前lg...
- AWS 官方已更新 9 個月前
- AWS 官方已更新 1 年前
- AWS 官方已更新 7 個月前
- AWS 官方已更新 3 年前