バイナリーオプション教材

マクロダイジェスト

マクロダイジェスト
「新しい接続」画面から「ホスト欄」に、接続先サーバのIPアドレス、又はホスト名(名前解決が必要)を入力し「OK」ボタンを押すと・・・

CloudTrail マクロダイジェスト ログファイルの整合性の検証

CloudTrail が配信した後でログファイルが変更、削除、または変更されなかったかどうかを判断するには、CloudTrail ログファイルの整合性の検証を使用することができます。この機能は、業界標準のアルゴリズムを使用して構築されています。ハッシュ用の SHA-256 とデジタル署名用の RSA を備えた SHA-256。これにより、CloudTrail ログファイルを検出せずに変更、削除、または偽造することは計算上実行不可能になります。AWS CLI を使用して CloudTrail が配信した場所のファイルを検証することができます。

使用する理由

検証されたログファイルは、セキュリティおよびフォレンシック調査で非常に重要です。たとえば、検証されたログファイルを使用すると、ログファイル自体が変更されていないこと、または特定のユーザーの認証情報が特定の API アクティビティを実行したことを確実にアサートできます。CloudTrail ログファイルの整合性の検証プロセスでは、ログファイルが削除または変更されたかどうかを知ることもできます。また、指定された期間内にログファイルがアカウントに配信されていないことを確実にアサートします。

ログファイルの整合性の検証を有効にすると、CloudTrail は、配信するすべてのログファイルに対してハッシュを作成します。また、1 マクロダイジェスト 時間ごとに、CloudTrail は、過去 1 時間のログファイルを参照し、それぞれのハッシュを含むファイルを作成して配信します。このファイルはダイジェストファイルと呼ばれます。CloudTrail は、パブリックキーとプライベートキーペアのプライベートキーを使用して、各ダイジェストファイルに署名します。配信後、パブリックキーを使用してダイジェストファイルを検証できます。CloudTrail は、AWS リージョンごとに異なるキーペアを使用します。

ダイジェストファイルは、CloudTrail ログファイルと同じ証跡に関連付けられた Amazon S3 バケットに配信されます。ログファイルがすべてのリージョンまたは複数のアカウントから単一の Amazon S3 バケットに配信された場合、CloudTrail は、ダイジェストファイルをそれらのリージョンとアカウントから同じバケットに配信します。

ダイジェストファイルは、ログファイルとは別のフォルダに格納されます。このようにダイジェストファイルとログファイルを分離することで、細かいセキュリティポリシーを適用することができ、既存のログ処理ソリューションを変更せずに引き続き運用することができます。各ダイジェストファイルには、存在する場合、前のダイジェストファイルのデジタル署名も含まれます。現在のダイジェストファイルの署名は、ダイジェストファイル Amazon S3 オブジェクトのメタデータプロパティにあります。ダイジェストファイルの内容の詳細については、「CloudTrail ダイジェストファイル構造」を参照してください。

ログおよびダイジェストファイルの保存

CloudTrail のログファイルとダイジェストファイルは、Amazon S3 または S3 Glacier に、無期限に安全、永続的、安価に保存できます。Amazon S3 に保存されているダイジェストファイルのセキュリティを強化するために、Amazon S3 MFA Delete を使用することができます。

検証の有効化とファイルの検証

ログファイルの整合性の検証を有効にするには、AWS Management Console、AWS CLI、CloudTrail API を使用することができます。詳細については、「CloudTrail のログファイルの整合性検証を有効にする」を参照してください。

CloudTrail ログファイルの整合性を検証するには、AWS CLI を使用するか、独自のソリューションを作成することができます。AWS CLI は、CloudTrail が配信した場所のファイルを検証します。Amazon S3 または他の場所のいずれかで、別の場所に移動したログを検証する場合、独自の検証ツールを作成することができます。

AWS CLI を使用したログの検証についての詳細は、「AWS CLI でのCloudTrail ログファイルの整合性の検証」を参照してください。CloudTrail ログファイル検証のカスタム実装の開発についての詳細は、「CloudTrail ログファイルの整合性検証のカスタム実装」を参照してください。

住所を都道府県と市区町村に分けて表示するには

簡易的に対処するには、IIf関数を入れ子で使用して、住所の3文字目と4文字目を調べます。1つ目のIIf関数で3文字目を調べ、「都、道、府、県」のいずれかであれば都道府県名として3文字取り出します。そうでない場合は2つ目のIIf関数で4文字目を調べ、「県」であれば都道府県名として4文字取り出します。そうでない場合は都道府県名が入力されていないとみなして、「””」(長さ0の文字列)を返すようにします(式3図4)。

  • 住所の3文字目の文字が「都、道、府、県」のいずれかである
    → 都道府県名として住所の先頭3文字を取り出す
  • 住所の4文字目の文字が「県」である
    → 都道府県名として住所の先頭4文字を取り出す
  • 上記以外
    → 住所に都道府県名が含まれないので「""」を返す

なお、式中の「Mid([住所],3,1) In ("都","道","府","県")」に含まれるIn演算子は、「フィールド名 In ("マクロダイジェスト red","blue","green")」のように記述して、フィールドの値が丸カッコ内の値セットの中にある場合はTrue、ない場合はFalseを返す演算子です。

式3 3文字目が「都、道、府、県」の場合は3文字、4文字目が「県」の場合は4文字を取り出す
都道府県: IIf(Mid([住所],3,1) In ("都","道","府","県"),Left([住所],3),IIf(マクロダイジェスト Mid([住所],4,1)="県",Left([住所],4),""))

図4 [都道府県名]フィールドに式3、[市区町村]フィールドに式2を使用。都道府県名が含まれていないに[都道府県]フィールドに何も表示されなくなった。

ただし、[住所]フィールドに都道府県名が含まれていない場合でも、市区町村名の3文字目が「都、道、府、県」であるか、4文字目が「県」である場合、図5のように誤った都道府県名が取り出されてしまいます。式3を使用する場合は、使用後に必ず不具合がないかチェックしましょう。不具合を見つけた場合や、レコード数が多すぎてチェックしきれない場合は、次節のCase3の方法を使用しましょう。

図5 「福岡県太宰府市」や「宮崎県東諸県郡(ひがしもろかたぐん)」のような住所に県名が含まれない場合、都道府県名として「太宰府」や「東諸県」が取り出されてしまう。

Case3.都道府県が含まれない場合に対応(都道府県テーブルで対応)

手順ダイジェスト

都道府県: (SELECT [都道府県名] FROM T_都道府県 WHERE [住所] Like [都道府県名]&"*")

市区町村: Replace([住所],Nz([都道府県],""),"")

[住所]フィールドから確実に都道府県名を取り出すには、面倒ですが47都道府県を入力したテーブルを用意します(図6)。ここでは、テーブル名を「T_都道府県」としました。

図6 都道府県名を入力したテーブルを用意する。

あとは、「相関サブクエリ」という仕組みを利用して、式4のように式を立てます。サブクエリを使いこなすにはSQL(リレーショナルデータベースを操作するための言語)の知識が必要です。ここでは掘り下げませんが、[T_住所録]テーブルの各レコードに対して、[T_都道府県]テーブルのレコードを順に比較していくイメージです。[T_住所録]テーブルの[住所]が[T_都道府県]テーブルの[都道府県名]で始まる場合に[都道府県名]を返しています。

式4 [T_都道府県]テーブルの都道府県を含む場合だけ住所から都道府県を取り出す
都道府県: (SELECT [都道府県名] FROM T_都道府県 WHERE [住所] Like [都道府県名]&"*")

式4では、[住所]フィールドに都道府県名が含まれない場合にNullが返されます。その場合、式2のように「市区町村: Replace([住所],[都道府県],"")」としてしまうと、第2引数がNull値となってしまいエラーが発生します。それを防ぐために、Nz関数(構文5)を使用してNull値を「""」で置き換え、式5のように式を立ててください(図7)。

構文5 Null値をほかの値に変換する
Nz(データ, Nullの代替値)

式5 [都道府県]がNullの場合に対処する
市区町村: Replace([住所],マクロダイジェスト Nz([都道府県],""),"")

図7 [都道府県名]フィールドに式4、[市区町村]フィールドに式5を使用。都道府県名だけが取り出されるようになった。

ACELINK NX-Pro会計大将で「汎用データ交換」機能を使ってExcel(CSV)から仕訳データをインポートする方法

インポート導入処理で作成、設定したフォーマットのインポート形式に合うようにExcelのデータを作成する。

  • 1伝票日付
  • 18(借方)勘定科目コード
  • 55(貸方)勘定科目コード
  • 92金額(入力金額)
  • 94消費税コード
  • 95消費税率
  • 100摘要
  • 101固定摘要コード1
  • 102固定摘要コード2
  • 103固定摘要コード3

G列の「摘要欄」に「 マクロダイジェスト #[1] 」と記載して、かつ、H列の「固定摘要1」欄に入力したい固定摘要のコードを入力しないとダメなんです。

G列の「摘要欄」に #[1] ではなく、 文字を入力した場合にはそのまま、文字列としてインポートされるので、特にH列の「固定摘要1」欄にコードを入力する必要はありません。

TeraTermでSSH接続が出来ない!トラブルシューティングやってみました

TeraTerm新しい接続画面

「新しい接続」画面から「ホスト欄」に、接続先サーバのIPアドレス、又はホスト名(名前解決が必要)を入力し「OK」ボタンを押すと・・・

「接続中」の画面(画像左)が表示されますが、ターミナル上には何も表示されません。しばらくすると 「Tera Term:エラー / 接続が拒否されました」 のポップアップ(画像右)が表示されました。

接続先のサーバ側で、サービスが起動していないにもかかわらず「接続が拒否されました」のメッセージ表示。何となくファイアーウォールなんかでブロックされているよな感じを受けますね。

ユーザ名・パスフレーズの入力間違い(クライアント側の問題)

「ユーザ名」「パスフレーズ」を入力し「OK」ボタンを押すと、 「認証に失敗しました。再試行してください」 のメッセージ(画像右)が表示されます。もちろんの事ですが、「ユーザ名」「パスフレーズ」のどちらを間違っているかは分かりません。

想定外のメッセージ?

何回も「OK」ボタンを押していると、以下のポップアップが表示されました。

iptablesでブロックされていた場合(サーバ側の設定の問題)

TeraTerm新しい接続画面

「新しい接続」画面から「ホスト」欄に接続先のホスト情報(ホスト名・IPアドレス等)を入力し、「OK」ボタンを押します。

「接続中」の画面(画像左)が表示されますが、コンソール上には何も表示されません。しばらく(私の環境で約20秒)すると 「Tera Term:エラー / ホストに接続できません」 のポップアップ(画像右)が表示されました。

hosts.denyでブロックされている場合(サーバ側の設定の問題)

TeraTerm新しい接続画面

「新しい接続」画面から「ホスト」欄に、接続先のホスト情報(ホスト名・IPアドレス等)を入力し「OK」ボタンを押すと・・・

SSH認証画面でOKが押せない

「SSH認証」の画面が表示されます。 「ユーザ名」「パスフレーズ」を入力し「OK」を押すものの、何の反応もありませんでした。

*ブログアップ前に動作を再確認した所、「OK」ボタンは押せて、画面が「未接続」の状態で変わらない状態になりました。(昨日までは「OK」が押せなかったのですが、原因は不明です・・・)

接続先ポート番号が間違っている場合(クライアント設定の問題)

TeraTerm新しい接続画面

最近流行のVPSとかで、セキュリティ向上のために、SSHサービスの待ち受けポートを変更している場合があります。その場合「TCPポート」欄を変更しないといけないのですが、デフォルトの「22」のまま接続すると・・・

「接続中」の画面(画像左)が表示されますが、コンソール上には何も表示されません。しばらくすると 「Tera Term:エラー / ホストに接続できません」 のポップアップ(画像右)が表示されました。

公開鍵認証しか受け付けないサーバにパスワード認証で接続

TeraTerm新しい接続画面

最後におまけで、公開鍵認証でしか接続できないように設定しているサーバに、パスワード認証でのログインを試みてみました。

「認証に失敗しました。再試行してください」 のメッセージと共に、 「RSA/DSA/ECDSA/ED25519鍵を使う」がチェック マクロダイジェスト されました。

住所を都道府県と市区町村に分けて表示するには

簡易的に対処するには、IIf関数を入れ子で使用して、住所の3文字目と4文字目を調べます。1つ目のIIf関数で3文字目を調べ、「都、道、府、県」のいずれかであれば都道府県名として3文字取り出します。そうでない場合は2つ目のIIf関数で4文字目を調べ、「県」であれば都道府県名として4文字取り出します。そうでない場合は都道府県名が入力されていないとみなして、「””」(長さ0の文字列)を返すようにします(式3図4)。

    マクロダイジェスト
  • 住所の3文字目の文字が「都、道、府、県」のいずれかである
    → 都道府県名として住所の先頭3文字を取り出す
  • 住所の4文字目の文字が「県」である
    → 都道府県名として住所の先頭4文字を取り出す
  • 上記以外
    → 住所に都道府県名が含まれないので「""」を返す

なお、式中の「Mid([住所],3,1) In ("都","道","マクロダイジェスト 府","県")」に含まれるIn演算子は、「フィールド名 In ("red","blue","green")」のように記述して、フィールドの値が丸カッコ内の値セットの中にある場合はTrue、ない場合はFalseを返す演算子です。

式3 3文字目が「都、道、府、県」の場合は3文字、4文字目が「県」の場合は4文字を取り出す
都道府県: IIf(Mid([住所],3,1) In ("都","道","府","県"),Left([住所],3),IIf(Mid([住所],4,1)="県",Left([住所],4),""))

図4 [都道府県名]フィールドに式3、[市区町村]フィールドに式2を使用。都道府県名が含まれていないに[都道府県]フィールドに何も表示されなくなった。

ただし、[住所]フィールドに都道府県名が含まれていない場合でも、市区町村名の3文字目が「都、道、府、県」であるか、4文字目が「県」である場合、図5のように誤った都道府県名が取り出されてしまいます。式3を使用する場合は、使用後に必ず不具合がないかチェックしましょう。不具合を見つけた場合や、レコード数が多すぎてチェックしきれない場合は、次節のCase3の方法を使用しましょう。

図5 「福岡県太宰府市」や「宮崎県東諸県郡(ひがしもろかたぐん)」のような住所に県名が含まれない場合、都道府県名として「太宰府」や「東諸県」が取り出されてしまう。

Case3.都道府県が含まれない場合に対応(都道府県テーブルで対応)

手順ダイジェスト

都道府県: (SELECT [都道府県名] FROM T_都道府県 WHERE [住所] Like [都道府県名]&"*")

市区町村: Replace([住所],Nz([都道府県],""),"")

[住所]フィールドから確実に都道府県名を取り出すには、面倒ですが47都道府県を入力したテーブルを用意します(図6)。ここでは、テーブル名を「T_都道府県」としました。

図6 都道府県名を入力したテーブルを用意する。

あとは、「相関サブクエリ」という仕組みを利用して、式4のように式を立てます。サブクエリを使いこなすにはSQL(リレーショナルデータベースを操作するための言語)の知識が必要です。ここでは掘り下げませんが、[T_住所録]テーブルの各レコードに対して、[T_都道府県]テーブルのレコードを順に比較していくイメージです。[T_住所録]テーブルの[住所]が[T_都道府県]テーブルの[都道府県名]で始まる場合に[都道府県名]を返しています。

式4 [T_都道府県]テーブルの都道府県を含む場合だけ住所から都道府県を取り出す
都道府県: (SELECT [都道府県名] FROM T_都道府県 WHERE [住所] Like [都道府県名]&"*")

式4では、[住所]フィールドに都道府県名が含まれない場合にNullが返されます。その場合、式2のように「市区町村: Replace([住所],[都道府県],"")マクロダイジェスト 」としてしまうと、第2引数がNull値となってしまいエラーが発生します。それを防ぐために、Nz関数(構文5)を使用してNull値を「""」で置き換え、式5のように式を立ててください(図7)。

構文5 Null値をほかの値に変換する
Nz(データ, Nullの代替値)

式5 [都道府県]がNullの場合に対処する
市区町村: Replace([住所],Nz([都道府県],""),"")

図7 [都道府県名]フィールドに式4、[市区町村]フィールドに式5を使用。都道府県名だけが取り出されるようになった。

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる