Infomation Source Il a été publié il y a quelque temps, mais cela fait moins d'un an, alors je vais écrire de quel type de mise à jour il s'agit.
CloudFormation Release List 2019/6/13 Release Features
AWS::ECS::TaskDefinition Les propriétés suivantes sont disponibles pour le type de propriété ContainerDefinition: --Utilisez la propriété Secrets pour spécifier les secrets à transmettre au conteneur. Utilisez la propriété Tags pour l'appliquer à votre définition de tâche afin de vous aider à classer et organiser vos métadonnées.
What's new?
Mise à jour de la façon d'obtenir des informations sensibles à partir du secret Secrets Manager ou du magasin de paramètres SSM dans les définitions de tâches ECS
Before
Ne peut être défini qu'à partir de JSON ou de la console Web
After
Peut également être défini dans CloudFormation
↓ En d'autres termes
Complet avec CloudFormation, y compris les définitions de tâches ainsi que les définitions de cluster et de service
\ Je suis heureux /
How
Si vous extrayez uniquement la partie pertinente, cela ressemblera à ceci
sample1.yml
Resources:
taskDefinition:
Properties:
ContainerDefinitions:
Secrets:
- Name: HOGE
ValueFrom: hoge
Toute la définition de la tâche ressemble à ceci
sample2.yml
AWSTemplateFormatVersion: 2010-09-09
Parameters:
Abréviation
Resources:
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 512
ExecutionRoleArn: ecsTaskExecutionRole
Family: !Ref TaskFamilyName
NetworkMode: awsvpc
ContainerDefinitions:
- Name: !Ref TaskFamilyName
Image: !Sub ${AWS::AccountId}.dkr.ecr.ap-northeast-1.amazonaws.com/hoge
Command: !Ref TaskCommand
MemoryReservation: 128
ReadonlyRootFilesystem: true
Secrets:
- Name: SECURE_TEST_STRING
ValueFrom: secure_test_string
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-group: !Ref TaskLogsGroup
awslogs-region: ap-northeast-1
awslogs-stream-prefix: ecs
Try
Enregistrez secure_test_string
et sa valeur dans le magasin de paramètres SSM.
Et par exemple, si vous écrivez du code python à exécuter sur ECS comme celui-ci, vous pouvez recevoir la valeur.
sample3.py
from logging import getLogger
from os import environ as env
logger = getLogger(__name__)
logger.info('hoge / ' + env['SECURE_TEST_STRING'])
Résultat du déploiement et de l'exécution ↓
Vous pouvez l'obtenir: tada:
FYI https://aws.amazon.com/jp/blogs/news/securing-credentials-using-aws-secrets-manager-with-aws-fargate/ https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html
Recommended Posts