Je tente de télécharger un fichier à partir d'un compartiment S3 vers une instance via la propriété userdata du exemple. Cependant, je reçois l'erreur:Impossible d'accéder à S3 à partir de l'instance EC2 dans Cloudformation - Une erreur client (301) s'est produite lors de l'appel de l'opération HeadObject:
A client error (301) occurred when calling the HeadObject operation: Moved Permanently.
J'utilise un rôle IAM, politique géré, et l'instance Profil de donner l'accessibilité de l'instance dans le seau s3:
"Role": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com", "s3.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "ManagedPolicyArns": [ { "Ref": "ManagedPolicy" } ] }, "Metadata": { "AWS::CloudFormation::Designer": { "id": "069d4411-2718-400f-98dd-529bb95fd531" } } }, "RolePolicy": { "Type": "AWS::IAM::Policy", "Properties": { "PolicyName": "S3Download", "PolicyDocument": { "Statement": [ { "Action": [ "s3:*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::mybucket/*" } ] }, "Roles": [ { "Ref": "Role" } ] }, "Metadata": { "AWS::CloudFormation::Designer": { "id": "babd8869-948c-4b8a-958d-b1bff9d3063b" } } }, "InstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "Role" } ] }, "Metadata": { "AWS::CloudFormation::Designer": { "id": "890c4df0-5d25-4f2c-b81e-05a8b8ab37c4" } } },
Et je tente de télécharger le fichier en utilisant cette ligne dans la propriété userdata:
aws s3 cp s3://mybucket/login.keytab destination_directory/
Une réflexion sur ce qui ne va pas? Je peux télécharger le fichier avec succès si je le rend public, puis utiliser wget à partir de la ligne de commande, mais pour une raison quelconque le compartiment/fichier ne peut pas être trouvé lors de l'utilisation de cp et le fichier n'est pas accessible au public.
Merci! Ce changement a fonctionné –