Como posso anexar uma política gerenciada do IAM a um perfil do IAM no CloudFormation?
Quero adicionar uma política gerenciada, nova ou já criada, do AWS Identity and Access Management (AWS IAM) a um perfil do IAM novo ou existente no AWS CloudFormation.
Breve descrição
Para adicionar uma política gerenciada do IAM, nova ou já criada, a um novo recurso de perfil do IAM, use a propriedade ManagedPolicyArns do tipo de recurso AWS::IAM::Role. Para adicionar uma nova política gerenciada do IAM a um recurso de perfil do IAM, use a propriedade Roles do tipo de recurso AWS::IAM::ManagedPolicy.
Sua política gerenciada do IAM pode ser uma política gerenciada pela AWS ou uma política gerenciada pelo cliente.
Importante: é possível anexar no máximo 20 políticas gerenciadas a um perfil ou usuário do IAM. O tamanho de cada política gerenciada não pode exceder 6.144 caracteres. O IAM não conta os espaços em branco ao calcular o tamanho de uma política em relação a esse limite. Para obter mais informações, consulte IAM and STS quotas (IAM e cotas do STS).
Com base no seu caso, conclua as etapas em uma das seções a seguir:
- Adicione uma política gerenciada do IAM existente a um novo perfil do IAM
- Adicione uma nova política gerenciada do IAM a um novo perfil do IAM
- Adicione uma nova política gerenciada do IAM a um perfil do IAM existente
Resolução
Adicione uma política gerenciada do IAM existente a um novo perfil do IAM
Conclua as etapas a seguir:
-
No seu modelo do AWS CloudFormation, crie um ou mais parâmetros que seja possível aprovar no nome do recurso da Amazon (ARN) da sua política gerenciada do IAM. Veja os seguintes exemplos de JSON e 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' -
Na seção Recursos do seu modelo, no tipo de recurso AWS::IAM::Role, defina Ref para os parâmetros que você criou na etapa 1. Neste exemplo, estes são os parâmetros awsExampleManagedPolicyParameterOne e awsExampleManagedPolicyParameterTwo. Veja os seguintes exemplos de JSON e 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 -
Para aplicar sua política gerenciada do IAM existente ao seu novo perfil do IAM, crie ou atualize a pilha com seu modelo modificado do CloudFormation.
Adicione uma nova política gerenciada do IAM a um novo perfil do IAM
Conclua as etapas a seguir:
-
Em seu modelo do AWS CloudFormation, crie uma nova política usando o recurso AWS::IAM::ManagedPolicy. Veja os seguintes exemplos de JSON e 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: "*" -
Use a sintaxe de ID lógico !Ref para anexar o recurso da política gerenciada do IAM ao recurso AWS::IAM::Role.
Por exemplo, defina Ref como o ID lógico do recurso que você criou na etapa 1 (SampleManagedPolicy). Veja os seguintes exemplos de JSON e 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 -
Para aplicar sua nova política gerenciada do IAM ao seu novo perfil do IAM, crie ou atualize a pilha com seu modelo modificado do CloudFormation.
Adicione uma nova política gerenciada do IAM a um perfil do IAM existente
Conclua as etapas a seguir:
-
No seu modelo do AWS CloudFormation, crie um parâmetro que seja possível usar para aprovar no nome dos seus perfis existentes. Veja os seguintes exemplos de JSON e 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 -
Na seção Recursos do seu modelo, defina Ref para o parâmetro que você criou na etapa 1 (awsExampleRolesParameter) no tipo de recurso AWS::IAM::ManagedPolicy. Veja os seguintes exemplos de JSON e 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 -
Para aplicar sua nova política gerenciada do IAM ao seu perfil do IAM existente, crie ou atualize a pilha com seu modelo modificado do CloudFormation.
- Tópicos
- Management & Governance
- Idioma
- Português

Conteúdo relevante
feita há um ano
- Resposta aceita
feita há 10 meses
- Resposta aceita
feita há 10 meses
feita há um ano