Je souhaite résoudre l'erreur Accès refusé pour mon pipeline de génération d'image dans EC2 Image Builder.
Brève description
Votre pipeline de création d'images peut échouer avec une erreur 403 Accès refusé pour les raisons suivantes :
- Le profil d'instance ne dispose pas des autorisations AWS Identity and Access Management (IAM) requises pour accéder aux API ou aux ressources de composants.
- Le rôle de profil d'instance ne dispose pas de l'autorisation PutObject requise pour se connecter à Amazon Simple Storage Service (Amazon S3).
- La politique personnalisée du point de terminaison de la passerelle Amazon S3 n'autorise pas l'action GetObject lorsque vous créez un sous-réseau privé.
Résolution
Ajouter les autorisations requises à votre profil d'instance
Vous devez ajouter les stratégies IAM suivantes au rôle IAM associé à votre profil d'instance :
Si vous utilisez une stratégie personnalisée, ajoutez les autorisations requises à votre stratégie personnalisée. Pour attacher une stratégie, consultez la section Associer la stratégie de AWS Identity and Access Management (IAM).
Ajouter les autorisations PutObject requises pour Amazon S3
Le profil d'instance spécifié dans votre configuration doit disposer de l’autorisation s3:PutObject pour le compartiment Amazon S3 cible. Ajouter la politique d'autorisations suivante au compartiment Amazon S3 cible :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::example-bucket-name/*"
}
]
}
Remarque : Dans la commande précédente, remplacez example-bucket-name par le nom de votre compartiment Amazon S3.
Ajouter les autorisations GetObject requises à votre stratégie personnalisée de point de terminaison de passerelle Amazon S3
Si votre politique de point de terminaison de passerelle Amazon S3 n'autorise pas Image Builder à télécharger du code ou à accéder aux journaux, ajoutez GetObject à la stratégie personnalisée :
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::ec2imagebuilder*"
}