AppSpec 「アクセス許可」セクション (EC2/オンプレミスデプロイのみ) - AWS CodeDeploy

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AppSpec 「アクセス許可」セクション (EC2/オンプレミスデプロイのみ)

'permissions' セクションでは、インスタンスへのコピー後に、特別なアクセス許可を 'files' セクションのファイルおよびディレクトリ/フォルダに適用する方法を指定します。複数の object 指示を指定できます。このセクションはオプションです。Amazon Linux、Ubuntu Server、RHEL インスタンスにのみ適用されます。

注記

EC2/オンプレミスデプロイにのみ、'permissions' セクションを使用します。AWS Lambda または Amazon ECS デプロイには使用されません。

このセクションの構造は次のとおりです。

permissions: - object: object-specification pattern: pattern-specification except: exception-specification owner: owner-account-name group: group-name mode: mode-specification acls: - acls-specification context: user: user-specification type: type-specification range: range-specification type: - object-type

手順は次のとおりです。

  • object – 必須。これは、インスタンスへのファイルシステムオブジェクトのコピー後に、指定されたアクセス権限を適用する一連のファイルシステムオブジェクト (ファイルまたはディレクトリ/フォルダ) です。

    文字列で object を指定します。

  • pattern - オプション。アクセス権限を適用するパターンを指定します。指定しない場合、または特殊文字 "**" で指定する場合、type に応じて一致するすべてのファイルまたはディレクトリに、指定されたアクセス権限が適用されます。

    引用符 ("") 付きの文字列で pattern を指定します。

  • except - オプション。pattern の例外とするファイルまたはディレクトリを指定します。

    角括弧で囲った文字列のカンマ区切りリストで except を指定します。

  • owner - オプション。object の所有者の名前。指定しない場合、既存のすべての所有者が元のファイルに適用されます。それ以外の場合、ディレクトリ/フォルダ構造は、コピーオペレーションによって変更されません。

    文字列で owner を指定します。

  • group - オプション。object のグループの名前。指定しない場合、既存のすべてのグループが元のファイルに適用されます。それ以外の場合、ディレクトリ/フォルダ構造は、コピーオペレーションによって変更されません。

    文字列で group を指定します。

  • mode - オプション。object に適用されるアクセス権限を指定する数値。モード設定は、Linux の chmod コマンド の構文に従います。

    重要

    値の先頭にゼロが含まれる場合は、ダブルクォートで囲むか、先頭のゼロを削除して 3 桁だけにする必要があります。

    注記

    u+x の設定では、mode のような記号表記はサポートされていません。

    例:

    • mode: "0644" は、オブジェクトの所有者に読み書きのアクセス権限 (6)、グループに対する読み取り専用アクセス許可 (4)、およびその他すべてのユーザーに読み取り専用アクセス権限 (4) を与えます。

    • mode: 644 と同じ権限を付与する mode: "0644"

    • mode: 4755 は setuid 属性を設定し (4)、所有者にフルコントロール権限を与え (7)、グループに対する読み取りと実行の権限を付与し (5)、他のすべてのユーザーに読み取りと実行の権限を付与します (5)。

      その他の例については、Linux の chmod コマンドのドキュメントを参照してください。

      モードを指定しない場合、既存のすべてのモードが元のファイルに適用されます。それ以外の場合、フォルダ構造は、コピーオペレーションによって変更されません。

  • acls - オプション。1 つ以上のアクセスコントロールリスト (ACL) エントリを表す文字列のリストが、object に適用されます。たとえば、u:bob:rw は、ユーザー bob の読み取りおよび書き込みアクセス権限を表します (その他の例については、Linux の setfacl コマンドドキュメントの ACL 入力形式の例を参照してください)。複数の ACL エントリを指定できます。acls を指定しない場合、既存のすべての ACL が元のファイルに適用されます。それ以外の場合、ディレクトリ/フォルダ構造は、コピーオペレーションによって変更されません。既存の ACL は置き換えられます。

    acls を指定します。ダッシュ (-) の後にスペースを続け、その後に文字列を続けます(例: - u:jane:rw)。ACL が複数ある場合は、それぞれ個別の行で指定します。

    注記

    名前のないユーザー、名前のないグループ、またはその他の同様の ACL エントリを設定すると、 AppSpec ファイルは失敗します。これらのタイプのアクセス許可を指定するには、代わりに mode を使用します。

  • context - オプション。Security-Enhanced Linux (SELinux) 対応インスタンスの場合、コピーしたオブジェクトに適用されるセキュリティ関連コンテキストラベルのリスト。ラベルは、user, type、および range を含むキーとして指定されます。(詳細については、SELinux のドキュメントを参照してください)。各キーは文字列で入力します。指定しない場合、既存のすべてのラベルが元のファイルに適用されます。それ以外の場合、ディレクトリ/フォルダ構造は、コピーオペレーションによって変更されません。

    • user - オプション。SELinux ユーザー。

    • type - オプション。SELinux の型名。

    • range - オプション。SELinux の範囲指定子。マルチレベルセキュリティ (MLS) およびマルチカテゴリセキュリティ (MCS) がマシンで有効になっていない限り、この効果はありません。有効になっていない場合は、range はデフォルトで s0 になります。

    文字列 で context を指定します(例: user: unconfined_u)。それぞれの context は個別の行で指定されます。

  • type - オプション。指定された権限を適用するオブジェクトのタイプ。type は、file あるいは directory に設定できる文字列です。file を指定した場合、アクセス許可は、コピーオペレーションの後に(object 自体ではなく) object 内に直接含まれるファイルのみに適用されます。directory を指定した場合、アクセス権限は、コピーオペレーションの後に(object 自体ではなく)、object 内のいずれかの場所にあるすべてのディレクトリ/フォルダに再帰的に適用されます。

    type を指定します。ダッシュ (-) の後にスペースを続け、その後に文字列を続けます(例: - file)。

「permissions」セクションの例

次の例は、objectpatternexceptownermode、および type の手順を使用して 'permissions' セクションを指定する方法を示しています。この例は、Amazon Linux、Ubuntu Server、RHEL インスタンスにのみ適用されます。この例では、次のファイルとフォルダが、この階層のインスタンスにコピーされることを前提としています。

/tmp `-- my-app |-- my-file-1.txt |-- my-file-2.txt |-- my-file-3.txt |-- my-folder-1 | |-- my-file-4.txt | |-- my-file-5.txt | `-- my-file-6.txt `-- my-folder-2 |-- my-file-7.txt |-- my-file-8.txt |-- my-file-9.txt `-- my-folder-3

次の AppSpec ファイルは、コピー後にこれらのファイルとフォルダにアクセス許可を設定する方法を示しています。

version: 0.0 os: linux # Copy over all of the folders and files with the permissions they # were originally assigned. files: - source: ./my-file-1.txt destination: /tmp/my-app - source: ./my-file-2.txt destination: /tmp/my-app - source: ./my-file-3.txt destination: /tmp/my-app - source: ./my-folder-1 destination: /tmp/my-app/my-folder-1 - source: ./my-folder-2 destination: /tmp/my-app/my-folder-2 # 1) For all of the files in the /tmp/my-app folder ending in -3.txt # (for example, just my-file-3.txt), owner = adm, group = wheel, and # mode = 464 (-r--rw-r--). permissions: - object: /tmp/my-app pattern: "*-3.txt" owner: adm group: wheel mode: 464 type: - file # 2) For all of the files ending in .txt in the /tmp/my-app # folder, but not for the file my-file-3.txt (for example, # just my-file-1.txt and my-file-2.txt), # owner = ec2-user and mode = 444 (-r--r--r--). - object: /tmp/my-app pattern: "*.txt" except: [my-file-3.txt] owner: ec2-user mode: 444 type: - file # 3) For all the files in the /tmp/my-app/my-folder-1 folder except # for my-file-4.txt and my-file-5.txt, (for example, # just my-file-6.txt), owner = operator and mode = 646 (-rw-r--rw-). - object: /tmp/my-app/my-folder-1 pattern: "**" except: [my-file-4.txt, my-file-5.txt] owner: operator mode: 646 type: - file # 4) For all of the files that are immediately under # the /tmp/my-app/my-folder-2 folder except for my-file-8.txt, # (for example, just my-file-7.txt and # my-file-9.txt), owner = ec2-user and mode = 777 (-rwxrwxrwx). - object: /tmp/my-app/my-folder-2 pattern: "**" except: [my-file-8.txt] owner: ec2-user mode: 777 type: - file # 5) For all folders at any level under /tmp/my-app that contain # the name my-folder but not # /tmp/my-app/my-folder-2/my-folder-3 (for example, just # /tmp/my-app/my-folder-1 and /tmp/my-app/my-folder-2), # owner = ec2-user and mode = 555 (dr-xr-xr-x). - object: /tmp/my-app pattern: "*my-folder*" except: [tmp/my-app/my-folder-2/my-folder-3] owner: ec2-user mode: 555 type: - directory # 6) For the folder /tmp/my-app/my-folder-2/my-folder-3, # group = wheel and mode = 564 (dr-xrw-r--). - object: /tmp/my-app/my-folder-2/my-folder-3 group: wheel mode: 564 type: - directory

作成されるアクセス権限は次のとおりです。

-r--r--r-- ec2-user root my-file-1.txt -r--r--r-- ec2-user root my-file-2.txt -r--rw-r-- adm wheel my-file-3.txt dr-xr-xr-x ec2-user root my-folder-1 -rw-r--r-- root root my-file-4.txt -rw-r--r-- root root my-file-5.txt -rw-r--rw- operator root my-file-6.txt dr-xr-xr-x ec2-user root my-folder-2 -rwxrwxrwx ec2-user root my-file-7.txt -rw-r--r-- root root my-file-8.txt -rwxrwxrwx ec2-user root my-file-9.txt dr-xrw-r-- root wheel my-folder-3

次の例では、「acls」および「context」の手順を追加して、'permissions' セクションを指定する方法を示します。この例は、Amazon Linux、Ubuntu Server、RHEL インスタンスにのみ適用されます。

permissions: - object: /var/www/html/WordPress pattern: "**" except: [/var/www/html/WordPress/ReadMe.txt] owner: bob group: writers mode: 644 acls: - u:mary:rw - u:sam:rw - m::rw context: user: unconfined_u type: httpd_sys_content_t range: s0 type: - file