すべてのプロダクト
Search
ドキュメントセンター

Elastic Container Instance:エラスティックコンテナインスタンスまたはコンテナのセキュリティコンテキストを設定する

最終更新日:Dec 28, 2024

このトピックでは、セキュリティコンテキストを設定し、エラスティックコンテナインスタンスまたはコンテナの権限とアクセス制御設定を定義する方法について説明します。

背景情報

セキュリティコンテキストは、エラスティックコンテナインスタンスまたはコンテナの権限とアクセス制御設定を定義します。セキュリティコンテキスト設定の例としては、随意アクセス制御、Security Enhanced Linux(SELinux)、およびLinuxケーパビリティなどがあります。詳細については、ポッドまたはコンテナのセキュリティコンテキストの設定を参照してください。

セキュリティコンテキストは、以下のレベルで設定できます。

  • インスタンス

    エラスティックコンテナインスタンスでは、インスタンスのセキュリティコンテキストを設定することで、sysctlパラメータを変更できます。インスタンスに指定したセキュリティ設定は、インスタンス内のすべてのコンテナとボリュームに適用されます。

  • コンテナ

    エラスティックコンテナインスタンスでは、コンテナのセキュリティコンテキストを設定することで、runAsUserおよびケーパビリティパラメータを変更できます。コンテナに指定したセキュリティ設定は、指定したコンテナにのみ適用されます。

インスタンスのセキュリティコンテキストを設定する

機能の説明

Linuxシステムでは、sysctlインターフェースを使用してランタイムカーネルパラメータを変更できます。次のコマンドを実行することで、エラスティックコンテナインスタンスのカーネルパラメータを表示できます。詳細については、sysctl.shを参照してください。

sysctl -a

ポッドのセキュリティコンテキストを設定することで、sysctlおよびrunAsUserパラメータを変更できます。

警告

オペレーティングシステムの不安定性を避けるため、sysctlパラメータの変更の影響を十分に理解してから実行してください。詳細については、sysctlを参照してください。

エラスティックコンテナインスタンスでは、以下のsysctlパラメータを変更できます。

  • kernel.shm*

  • kernel.msg*

  • kernel.sem

  • fs.mqueue.*

  • net.* (net.ipv4.tcp_syncookiesを除く)

  • vm.min_free_kbytes

    vm.min_free_kbytesには、合計メモリサイズの20%以下の値を指定することをお勧めします。

設定の説明

CreateContainerGroup APIオペレーションを呼び出してエラスティックコンテナインスタンスを作成する際に、SecurityContext.Sysctl関連パラメータまたはHostSecurityContext.Sysctl関連パラメータを使用して、インスタンスのセキュリティコンテキストを設定できます。SecurityContext.Sysctl関連パラメータは安全なsysctlの変更に使用され、HostSecurityContext.Sysctl関連パラメータは安全でないsysctlの変更に使用されます。次の表に関連パラメータを示します。詳細については、CreateContainerGroupを参照してください。

パラメータ

タイプ

説明

SecurityContext.Sysctl.N.Name

string

net.ipv4.ping_group_range

セキュリティコンテキストを設定してsysctlを変更する場合の、安全なsysctlの名前。有効な値:

  • net.ipv4.ping_group_range

  • net.ipv4.ip_unprivileged_port_start

SecurityContext.Sysctl.N.Value

string

1

セキュリティコンテキストを設定してsysctlを変更する場合の、安全なsysctlの値。

HostSecurityContext.Sysctl.N.Name

string

kernel.msgmax

セキュリティコンテキストを設定してsysctlを変更する場合の、安全でないsysctlの名前。有効な値:

  • kernel.shm * (kernel.shm_rmid_forcedを除く)

  • kernel.msg*

  • kernel.sem

  • fs.mqueue.*

  • net.* (net.ipv4.ip_local_port_range、net.ipv4.tcp_syncookies、net.ipv4.ping_group_range、およびnet.ipv4.ip_unprivileged_port_startを除く)

HostSecurityContext.Sysctl.N.Value

string

65536

セキュリティコンテキストを設定してsysctlを変更する場合の、安全でないsysctlの値。

コンテナのセキュリティコンテキストを設定する

機能の説明

指定したコンテナのセキュリティコンテキストを設定できます。次の表に、エラスティックコンテナインスタンスでサポートされているパラメータを示します。

パラメータ

説明

runAsUser

コンテナを実行するユーザーのID。このパラメータの設定は、DockerfileのUSERコマンドをオーバーライドします。

runAsGroup

コンテナを実行するユーザーグループ。

runAsNonRoot

ユーザーがコンテナを非rootユーザーとして実行するかどうかを指定します。有効な値:trueまたはfalse。デフォルト値:false。

privileged

コンテナを特権モードで実行するかどうかを指定します。trueの値は、コンテナが特権モードで実行されることを指定します。デフォルト値:false。

説明

特権コンテナ機能は内部プレビュー中です。この機能を使用するには、チケットを送信してください。

capabilities

コンテナ内のプロセスに付与される権限。詳細については、Linuxケーパビリティを参照してください。

以下の権限を設定できます。

  • AUDIT_WRITE

  • CHOWN

  • DAC_OVERRIDE

  • FSETID

  • FOWNER

  • KILL

  • MKNOD

  • NET_ADMIN

  • NET_BIND_SERVICE

  • NET_RAW

  • SETGID

  • SETUID

  • SETFCAP

  • SETPCAP

  • SYS_CHROOT

  • SYS_PTRACE

  • SYS_RAWIO

説明

SYS_RAWIO権限をプロセスに付与することはできません。SYS_RAWIOを使用するには、チケットを送信してください。

次の表に、サポートされていないパラメータと、それらのパラメータのデフォルト値を示します。

サポートされていないパラメータ

説明

AllowedProcMountTypes

コンテナに許可されるprocマウントタイプ。デフォルト値:DefaultProcMount。

readOnlyRootFilesystem

コンテナが実行されるルートファイルシステムが読み取り専用かどうかを指定します。デフォルト値:true。

設定の説明

CreateContainerGroup APIオペレーションを呼び出してエラスティックコンテナインスタンスを作成する際に、Container.N.SecurityContext関連パラメータを使用して、コンテナのセキュリティコンテキストを設定できます。次の表に関連パラメータを示します。詳細については、CreateContainerGroupを参照してください。

パラメータ

タイプ

説明

Container.N.SecurityContext.Capability.Add.N

array

NET_ADMIN

コンテナ内のプロセスに付与される権限。

Container.N.SecurityContext.ReadOnlyRootFilesystem

boolean

true

コンテナが実行されるルートファイルシステムを読み取り専用にするかどうかを指定します。値をtrueに設定します。

Container.N.SecurityContext.RunAsUser

long

1000

コンテナを実行するユーザーのID。

Container.N.SecurityContextRunAsGroup

long

3000

コンテナを実行するユーザーグループ。

Container.N.SecurityContextRunAsNonRoot

boolean

true

コンテナを非rootユーザーとして実行するかどうかを指定します。デフォルト値:false。有効な値:

  • true:コンテナを非rootユーザーとして実行します。

  • false:コンテナをrootユーザーとして実行します。

Container.N.SecurityContextPrivileged

boolean

true

コンテナの特権モードを有効にするかどうかを指定します。つまり、コンテナを特権モードで実行するかどうかを指定します。デフォルト値:false。有効な値:

  • true:コンテナの特権モードを有効にします。

  • false:コンテナの特権モードを有効にしません。

説明

特権コンテナ機能は内部プレビュー中です。この機能を使用するには、チケットを送信してください。

説明

initコンテナのセキュリティコンテキストも設定できます。設定が必要なパラメータは上記の表のパラメータと似ていますが、initコンテナのSecurityContextRunAsGroupおよびSecurityContextRunAsNonRootパラメータは設定できません。