Infomation Source Es wurde vor einiger Zeit veröffentlicht, aber es ist weniger als ein Jahr her, also werde ich aufschreiben, um welche Art von Update es sich handelt.
CloudFormation Release List 2019/6/13 Release Features
AWS::ECS::TaskDefinition Die folgenden Eigenschaften sind für den Eigenschaftentyp ContainerDefinition verfügbar:
What's new?
Aktualisiert, wie vertrauliche Informationen aus dem Secrets Manager-Geheimnis oder dem SSM-Parameterspeicher in ECS-Aufgabendefinitionen abgerufen werden
Before
Kann nur über JSON oder Webkonsole festgelegt werden
After
Kann jetzt in CloudFormation festgelegt werden
↓ Mit anderen Worten
Komplett mit CloudFormation, einschließlich Aufgabendefinitionen sowie Cluster- und Dienstdefinitionen
\ Ich bin glücklich /
How
Wenn Sie nur das relevante Teil extrahieren, sieht es so aus
sample1.yml
Resources:
taskDefinition:
Properties:
ContainerDefinitions:
Secrets:
- Name: HOGE
ValueFrom: hoge
Die gesamte Aufgabendefinition sieht so aus
sample2.yml
AWSTemplateFormatVersion: 2010-09-09
Parameters:
Abkürzung
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
Registrieren Sie secure_test_string
und seinen Wert im SSM-Parameterspeicher.
Wenn Sie beispielsweise Python-Code schreiben, der auf ECS wie folgt ausgeführt werden soll, können Sie den Wert erhalten.
sample3.py
from logging import getLogger
from os import environ as env
logger = getLogger(__name__)
logger.info('hoge / ' + env['SECURE_TEST_STRING'])
Ergebnis der Bereitstellung und Ausführung ↓
Sie können es bekommen: 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