AWS::EFS::FileSystem - AWS CloudFormation

AWS::EFS::FileSystem

AWS::EFS::FileSystem リソースは、Amazon Elastic File System (Amazon EFS) に新しい空のファイルシステムを作成します。Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたは別のコンピューティングリソースで EFS ファイルシステムをマウントするには、マウントターゲット (AWS::EFS::MountTarget) を作成する必要があります。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "Type" : "AWS::EFS::FileSystem", "Properties" : { "Encrypted" : Boolean, "FileSystemPolicy" : Json, "FileSystemTags" : [ ElasticFileSystemTag, ... ], "KmsKeyId" : String, "LifecyclePolicies" : [ LifecyclePolicy, ... ], "PerformanceMode" : String, "ProvisionedThroughputInMibps" : Double, "ThroughputMode" : String } }

YAML

Type: AWS::EFS::FileSystem Properties: Encrypted: Boolean FileSystemPolicy: Json FileSystemTags: - ElasticFileSystemTag KmsKeyId: String LifecyclePolicies: - LifecyclePolicy PerformanceMode: String ProvisionedThroughputInMibps: Double ThroughputMode: String

プロパティ

Encrypted

このブール値が true の場合、暗号化されたファイルシステムが作成されます。暗号化されたファイルシステムを作成するときに、既存の AWS Key Management Service (AWS KMS) カスタマーマスターキー (CMK) に KmsKeyId を指定することができます。CMK を指定しない場合、Amazon EFS のデフォルトの CMK、/aws/elasticfilesystem、が暗号化されたファイルシステムの保護に使用されます。

必須: 条件付き

タイプ: ブール値

Update requires: Replacement

FileSystemPolicy

EFS ファイルシステムの FileSystemPolicy。ファイルシステムポリシーは、EFS ファイルシステムへの NFS アクセスを制御するために使用される IAM リソースポリシーです。詳細については、Amazon EFS ユーザーガイドの「IAM を使用した Amazon EFS への NFS アクセスのコントロール」を参照してください。

必須: いいえ

タイプ: Json

Update requires: No interruption

FileSystemTags

ファイルシステムに関連付けられている 1 つ以上のタグを作成するように指定する値。各タグはユーザー定義のキーと値のペアです。"Key":"Name","Value":"{value}" キーと値のペアを含めることで、作成時にファイルシステムに名前を付けます。

必須: いいえ

タイプ: ElasticFileSystemTag のリスト

Update requires: No interruption

KmsKeyId

暗号化されたファイルシステムの保護に使用される AWS KMS カスタマーマスターキー (CMK) の ID。このパラメータは、デフォルト以外の CMK を使用する場合にのみ必要です。このパラメータが指定されない場合、Amazon EFS のデフォルトの CMK が使用されます。この ID は以下のいずれかの形式になります。

  • キー ID - キーの一意の識別子 (例: 1234abcd-12ab-34cd-56ef-1234567890ab)。

  • ARN - キーの Amazon リソースネーム (ARN) (例: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab)。

  • キーエイリアス - 前に作成したキーの表示名 (例: alias/projectKey1)。

  • キーエイリアス ARN - キーエイリアスの ARN (例: arn:aws:kms:us-west-2:444455556666:alias/projectKey1)。

KmsKeyId を指定した場合、Encrypted パラメータを true に設定する必要があります。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 2048

Update requires: Replacement

LifecyclePolicies

低頻度アクセス (IA) ストレージクラスにファイルを移行する EFS ライフサイクル管理で使用されるポリシーのリスト。

必須: いいえ

タイプ: LifecyclePolicy のリスト

Update requires: No interruption

PerformanceMode

ファイル システムのパフォーマンス モード。ほとんどのファイルシステムに generalPurpose パフォーマンスモードをお勧めします。maxIO パフォーマンスモードを使用しているファイルシステムでは、ほとんどのファイルオペレーションのレイテンシーがわずかに大きくなる代わりに、より高いレベルの集計スループットと 1 秒あたりのオペレーションにスケールできます。パフォーマンスモードは、ファイルシステムの作成後は変更できません。

必須: いいえ

タイプ: 文字列

許可された値: generalPurpose | maxIO

Update requires: Replacement

ProvisionedThroughputInMibps

作成しているファイルシステムにプロビジョニングするスループット (MiB/秒単位で計測)。有効な値は、1~1024 です。ThroughputModeprovisioned に設定されている場合は必須です。スループットの上限は 1,024 MiB/ 秒です。この制限は、AWS サポートに連絡して引き上げることができます。詳細については、『Amazon EFS ユーザーガイド』の「緩和できる Amazon EFS の制限」を参照してください。

必須: 条件付き

タイプ: 倍精度

Update requires: No interruption

ThroughputMode

作成するファイルシステムのスループットモード。ファイルシステムに選択できるスループットモードは、burstingprovisioned の 2 つがあります。ThroughputModeprovisioned に設定した場合、ProvisionedThroughPutInMibps の値も設定する必要があり ます。プロビジョンドスループットモードでファイルシステムのスループットを減らす場合や、スループットモード間の切り替えを行う場合は、前回減らした時点またはスループットモードの変更時点から 24 時間経過している必要があります。詳細については、Amazon EFS ユーザーガイド の「プロビジョニングモードでのスループットの指定」を参照してください。

必須: いいえ

タイプ: 文字列

許可された値: bursting | provisioned

Update requires: No interruption

戻り値

参照番号

このリソースの論理 ID を組み込みの Ref 関数に渡すと、Ref は次を返します: : リソース ID。次に例を示します。

{"Ref":"fs-12345678"}

Amazon EFS ファイルシステム fs-12345678 には、Ref はファイルシステム ID を返します。

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 組み込み関数は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

Fn::GetAtt 組み込み関数の使用方法の詳細については、「Fn::GetAtt」を参照してください。

FileSystemId

EFS ファイルシステムの ID。例: fs-0123456

暗号化されたファイルシステムの作成

以下の例では、暗号化された Amazon EFS ファイルシステムを宣言しています。

JSON

"{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MountTargetVPC": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "172.31.0.0/16" } }, "MountTargetSubnetOne": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "172.31.1.0/24", "VpcId": { "Ref": "MountTargetVPC" }, "AvailabilityZone": "us-east-1a" } }, "MountTargetSubnetTwo": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "172.31.2.0/24", "VpcId": { "Ref": "MountTargetVPC" }, "AvailabilityZone": "us-east-1a" } }, "MountTargetSubnetThree": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "172.31.3.0/24", "VpcId": { "Ref": "MountTargetVPC" }, "AvailabilityZone": "us-east-1a" } }, "FileSystemResource": { "Type": "AWS::EFS::FileSystem", "Properties": { "PerformanceMode": "maxIO", "LifecyclePolicies":[ { "TransitionToIA" : "AFTER_30_DAYS" } ], "Encrypted": true, "FileSystemTags": [ { "Key": "Name", "Value": "TestFileSystem" } ], "FileSystemPolicy": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount" ], "Principal": {"AWS": "arn:aws:iam::111122223333:root"} } ] }, "KmsKeyId": { "Fn::GetAtt": [ "key", "Arn" ] } } }, "key": { "Type": "AWS::KMS::Key", "Properties": { "KeyPolicy": { "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Allow administration of the key", "Effect": "Allow", "Principal": { "AWS": { "Fn::Join": [ "", [ "arn:aws:iam::", { "Ref": "AWS::AccountId" }, ":root" ] ] } }, "Action": [ "kms:*" ], "Resource": "*", "AWS": "*" } ] } } }, "MountTargetResource1": { "Type": "AWS::EFS::MountTarget", "Properties": { "FileSystemId": { "Ref": "FileSystemResource" }, "SubnetId": { "Ref": "MountTargetSubnetOne" }, "SecurityGroups": [ { "Fn::GetAtt": [ "MountTargetVPC", "DefaultSecurityGroup" ] } ] } }, "MountTargetResource2": { "Type": "AWS::EFS::MountTarget", "Properties": { "FileSystemId": { "Ref": "FileSystemResource" }, "SubnetId": { "Ref": "MountTargetSubnetTwo" }, "SecurityGroups": [ { "Fn::GetAtt": [ "MountTargetVPC", "DefaultSecurityGroup" ] } ] } }, "MountTargetResource3": { "Type": "AWS::EFS::MountTarget", "Properties": { "FileSystemId": { "Ref": "FileSystemResource" }, "SubnetId": { "Ref": "MountTargetSubnetThree" }, "SecurityGroups": [ { "Fn::GetAtt": [ "MountTargetVPC", "DefaultSecurityGroup" ] } ] } }, "AccessPointResource": { "Type": "AWS::EFS::AccessPoint", "Properties": { "FileSystemId": { "Ref": "FileSystemResource" }, "PosixUser": { "Uid": "13234", "Gid": "1322", "SecondaryGids": [ "1344", "1452" ] }, "RootDirectory": { "CreationInfo": { "OwnerGid": "708798", "OwnerUid": "7987987", "Permissions": "0755" }, "Path": "/testcfn/abc" } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Resources: MountTargetVPC: Type: AWS::EC2::VPC Properties: CidrBlock: 172.31.0.0/16 MountTargetSubnetOne: Type: AWS::EC2::Subnet Properties: CidrBlock: 172.31.1.0/24 VpcId: !Ref MountTargetVPC AvailabilityZone: "us-east-1a" MountTargetSubnetTwo: Type: AWS::EC2::Subnet Properties: CidrBlock: 172.31.2.0/24 VpcId: !Ref MountTargetVPC AvailabilityZone: "us-east-1a" MountTargetSubnetThree: Type: AWS::EC2::Subnet Properties: CidrBlock: 172.31.3.0/24 VpcId: !Ref MountTargetVPC AvailabilityZone: "us-east-1a" FileSystemResource: Type: 'AWS::EFS::FileSystem' Properties: PerformanceMode: maxIO Encrypted: true LifecyclePolicies: - TransitionToIA: AFTER_30_DAYS FileSystemTags: - Key: Name Value: TestFileSystem FileSystemPolicy: Version: "2012-10-17" Statement: - Effect: "Allow" Action: - "elasticfilesystem:ClientMount" Principal:'arn:aws:iam::111122223333:root' KmsKeyId: !GetAtt - key - Arn key: Type: AWS::KMS::Key Properties: KeyPolicy: Version: 2012-10-17 Id: key-default-1 Statement: - Sid: Allow administration of the key Effect: Allow Principal: AWS: !Join - '' - - 'arn:aws:iam::' - !Ref 'AWS::AccountId' - ':root' Action: - 'kms:*' Resource: '*' AWS: "*" MountTargetResource1: Type: AWS::EFS::MountTarget Properties: FileSystemId: !Ref FileSystemResource SubnetId: !Ref MountTargetSubnetOne SecurityGroups: - !GetAtt MountTargetVPC.DefaultSecurityGroup MountTargetResource2: Type: AWS::EFS::MountTarget Properties: FileSystemId: !Ref FileSystemResource SubnetId: !Ref MountTargetSubnetTwo SecurityGroups: - !GetAtt MountTargetVPC.DefaultSecurityGroup MountTargetResource3: Type: AWS::EFS::MountTarget Properties: FileSystemId: !Ref FileSystemResource SubnetId: !Ref MountTargetSubnetThree SecurityGroups: - !GetAtt MountTargetVPC.DefaultSecurityGroup AccessPointResource: Type: 'AWS::EFS::AccessPoint' Properties: FileSystemId: !Ref FileSystemResource PosixUser: Uid: "13234" Gid: "1322" SecondaryGids: - "1344" - "1452" RootDirectory: CreationInfo: OwnerGid: "708798" OwnerUid: "7987987" Permissions: "0755" Path: "/testcfn/abc"

以下の資料も参照してください。