Come posso associare una policy gestita IAM a un ruolo IAM in AWS CloudFormation?
Desidero aggiungere una policy gestita AWS Identity and Access Management (IAM) esistente o nuova a un ruolo IAM esistente o nuovo in AWS CloudFormation.
Breve descrizione
Per aggiungere una policy gestita IAM esistente o nuova a una nuova risorsa ruolo IAM, utilizza la proprietà ManagedPolicyArns del tipo di risorsa AWS::IAM::Role. Per aggiungere una nuova policy gestita IAM a una risorsa ruolo IAM esistente, utilizza la proprietà Roles del tipo di risorsa AWS::IAM::ManagedPolicy.
La policy gestita IAM può essere una policy gestita da AWS o una policy gestita dal cliente.
Importante: è possibile associare un massimo di 10 policy gestite a un ruolo IAM o a un utente. La dimensione di ogni policy gestita non può superare i 6.144 caratteri. Per ulteriori informazioni, consulta IAM e quote AWS STS.
Completa la procedura indicata in una delle seguenti sezioni in base allo scenario applicabile:
- Aggiungere una policy gestita IAM esistente a un nuovo ruolo IAM
- Aggiungere una nuova policy gestita IAM a un nuovo ruolo IAM
- Aggiungere una nuova policy gestita IAM a un ruolo IAM esistente
Risoluzione
Aggiungere una policy gestita IAM esistente a un nuovo ruolo IAM
1. Nel modello AWS CloudFormation, crea uno o più parametri da utilizzare per passare il nome della risorsa Amazon (ARN) della policy gestita IAM. Guarda i seguenti esempi 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'
2. Nella sezioneRisorse del modello, imposta Ref sui parametri creati al passaggio 1 per il tipo di risorsa AWS::IAM::Role. In questo esempio, i parametri sono awsExampleManagedPolicyParameterOne e awsExampleManagedPolicyParameterTwo. Guarda i seguenti esempi 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
3. Per applicare la policy gestita IAM esistente al nuovo ruolo IAM, crea uno stack o aggiorna uno stack esistente sulla base del modello AWS CloudFormation modificato.
Aggiungere una nuova policy gestita IAM a un nuovo ruolo IAM
1. Nel modello AWS CloudFormation, crea una nuova policy utilizzando la risorsa AWS::IAM::ManagedPolicy. Guarda i seguenti esempi 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: "*"
2. Utilizza la sintassi !Ref dell'ID logico per associare la risorsa policy gestita IAM alla risorsa AWS::IAM::Role.
Per esempio, imposta Ref sull'ID logico della risorsa creata al passaggio 1 (SampleManagedPolicy). Guarda i seguenti esempi 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
3. Per applicare la nuova policy gestita IAM al nuovo ruolo IAM, crea uno stack o aggiorna uno stack esistente sulla base del modello AWS CloudFormation modificato.
Aggiungere una nuova policy gestita IAM a un ruolo IAM esistente
1. Nel modello AWS CloudFormation, crea un parametro da utilizzare per passare il nome dei ruoli esistenti. Guarda i seguenti esempi 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
2. Nella sezioneRisorse del modello, imposta Ref sul parametro creato al passaggio 1 (awsExampleRolesParameter) per il tipo di risorsa AWS::IAM::ManagedPolicy. Guarda i seguenti esempi 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
3. Per applicare la nuova policy gestita IAM al ruolo IAM esistente, crea uno stack o aggiorna uno stack esistente sulla base del modello AWS CloudFormation modificato.
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 9 mesi fa
- AWS UFFICIALEAggiornata 3 anni fa