¿Cómo puedo adjuntar una política administrada de IAM a un rol de IAM en AWS CloudFormation?
Quiero añadir una política administrada de AWS Identity and Access Management (IAM) existente o nueva a un rol de IAM nuevo o existente en AWS CloudFormation.
Breve descripción
Para añadir una política administrada de IAM nueva o existente a un nuevo recurso de rol de IAM, use la propiedad ManagedPolicyArns del tipo de recurso AW::IAM::Role. Para añadir una nueva política administrada de IAM a un recurso de rol de IAM existente, use la propiedad Roles del tipo de recurso AWS::IAM::ManagedPolicy.
Su política administrada de IAM puede ser una política administrada de AWS o una política administrada por el cliente.
Importante: Puede adjuntar un máximo de 10 políticas administradas a un rol o usuario de IAM. El tamaño de cada política administrada no puede superar los 6144 caracteres. Para obtener más información, consulte cuotas de IAM y STS.
Según su situación, complete los pasos de una de las siguientes secciones:
- Incorporación de una política administrada de IAM existente a un nuevo rol de IAM
- Incorporación de una nueva política administrada de IAM a un nuevo rol de IAM
- Incorporación de una nueva política administrada de IAM a un rol de IAM existente
Resolución
Incorporación de una política administrada de IAM existente a un nuevo rol de IAM
1. En su plantilla de AWS CloudFormation, cree uno o varios parámetros que pueda usar para transferir el nombre de recurso de Amazon (ARN) de su política administrada de IAM. Consulte los siguientes ejemplos de JSON y 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. En la sección Recursos de su plantilla, para el tipo de recurso AWS::IAM::Role, defina Ref con los parámetros que creó en el paso 1. Para este ejemplo, se trata de los parámetros AWSexampleManagedPolicyParameterOne y AWSexampleManagedPolicyParameterTwo. Consulte los siguientes ejemplos de JSON y 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. Para aplicar la política administrada de IAM existente a su nuevo rol de IAM, cree una pila o actualice una pila existente a partir de la plantilla de AWS CloudFormation modificada.
Incorporación de una nueva política administrada de IAM a un nuevo rol de IAM
1. En su plantilla de AWS CloudFormation, cree una nueva política con el recurso AWS::IAM::ManagedPolicy. Consulte los siguientes ejemplos de JSON y 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. Use la sintaxis de identificador lógico !Ref para adjuntar el recurso de política administrada de IAM al recurso AWS::IAM::Role.
Por ejemplo, defina Ref en el identificador lógico del recurso que creó en el paso 1 (SampleManagedPolicy). Consulte los siguientes ejemplos de JSON y 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. Para aplicar su nueva política administrada de IAM a su nuevo rol de IAM, cree una pila o actualice una pila existente a partir de la plantilla de AWS CloudFormation modificada.
Incorporación de una nueva política administrada de IAM a un rol de IAM existente
1. En su plantilla de AWS CloudFormation, cree un parámetro que pueda usar para transferir el nombre de sus roles existentes. Consulte los siguientes ejemplos de JSON y 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. En la sección Recursos de su plantilla, para el tipo de recurso AWS::IAM::ManagedPolicy, defina Ref con el parámetro que creó en el paso 1 (AWSexampleRolesParameter). Consulte los siguientes ejemplos de JSON y 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. Para aplicar su nueva política administrada de IAM a su rol de IAM actual, cree una pila o actualice una pila existente a partir de la plantilla de AWS CloudFormation modificada.
Vídeos relacionados
Contenido relevante
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años