ドキュメントでの作業 - AWS Systems Manager

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

ドキュメントでの作業

このセクションには、SSM ドキュメントの使用方法と操作方法に関する情報が含まれています。

State Manager の関連付けで SSM ドキュメントを使用

AWS Systems Manager の一機能である State Manager の SSM ドキュメントを作成する場合は、ドキュメントをシステムに追加した後、そのドキュメントをマネージドインスタンスに関連付ける必要があります。詳細については、「Systems Manager の関連付けの使用」を参照してください。

State Manager の関連付けで SSM ドキュメントを使用する場合は、次の詳細情報に注意してください。

  • 異なるドキュメントを使用する別の State Manager 関連付けを作成して、ターゲットに複数のドキュメントを割り当てることができます。

  • 競合するプラグインでドキュメントを作成する場合 (例えば、ドメイン結合やドメインからの削除)、実行された最後のプラグインが最終状態になります。State Manager は、ドキュメントのコマンドや、プラグインの論理シーケンス、合理性を検証しません。

  • ドキュメントを処理するときに、インスタンスの関連付けが最初に適用され、次にタグ付けされたグループの関連付けが適用されます。インスタンスが、タグ付けされた複数のグループの一部である場合、タグ付けされたグループの一部であるドキュメントは、特定の順序で実行されません。インスタンスがインスタンス ID によって複数のドキュメントから直接対象になっている場合、特定の実行順序はありません。

  • State Manager の SSM ポリシードキュメントのデフォルトバージョンを変更した場合、そのドキュメントを使用する関連付けでは、次回に Systems Manager が関連付けをインスタンスに適用するときに、新しいデフォルトのバージョンを使い始めます。

  • ユーザーと共有された SSM ドキュメントを使用して関連付けを作成した後、所有者がそのドキュメントの共有を中止すると、ユーザーの関連付けはそのドキュメントにアクセスできなくなります。ただし、所有者が後で同じ SSM ドキュメントをユーザーと共有する場合、関連付けは自動的に再マッピングされます。

SSM ドキュメントのバージョンを比較する

Systems Manager ドキュメントコンソールで、AWS Systems Manager (SSM) ドキュメントのバージョン間のコンテンツの違いを比較できます。SSM ドキュメントのバージョンを比較するときは、バージョンのコンテンツの違いが強調表示されます。

SSM ドキュメントのコンテンツを比較する (コンソール)
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

    -または-

    AWS Systems Manager ホームページが最初に開く場合は、メニューアイコン ( 
    The menu icon
  ) を選択してナビゲーションペインを開き、[ドキュメント] を選択します。

  3. ドキュメントのリストから、コンテンツを比較するドキュメントを選択します。

  4. [Content] (コンテンツ) タブで [Compare versions] (バージョンを比較) をクリックして、コンテンツを比較するドキュメントのバージョンを選択します。

SSM ドキュメントを作成する (コンソール)

カスタム SSM ドキュメントのコンテンツを作成した後、SSM ドキュメントコンテンツを書き込む の説明に従って Systems Manager コンソールを使用し、コンテンツを使って SSM ドキュメントを作成できます。

SSM ドキュメント を作成するには (コンソール)
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

    -または-

    AWS Systems Manager ホームページが最初に開く場合は、メニューアイコン ( 
    The menu icon
  ) を選択してナビゲーションペインを開き、[ドキュメント] を選択します。

  3. [Create command or session (コマンドまたはセッションの作成)] を選択します。

  4. ドキュメントの記述名を入力します

  5. (オプション) [Target type (ターゲットタイプ)] で、ドキュメントを実行できるリソースの種類を指定します。

  6. [ドキュメントタイプ] リストで、作成するドキュメントのタイプを選択します。

  7. [Content (コンテンツ)] フィールドの括弧を削除した後に、先に作成したドキュメントコンテンツを貼り付けます。

  8. (オプション) [Document tags (ドキュメントタグ)] セクションで、1 つ以上のタグキーの名前と値のペアをドキュメントに適用します。

    タグは、リソースに割り当てるオプションのメタデータです。タグを使用すると、目的、所有者、環境などのさまざまな方法でリソースを分類できます。たとえば、ドキュメントにタグを付けて、ドキュメントが実行するタスクの種類、ターゲットとするオペレーティングシステムの種類、およびドキュメントが動作する環境を指定できます。この場合、以下のキーの名前と値のペアを指定します。

    • Key=TaskType,Value=MyConfigurationUpdate

    • Key=OS,Value=AMAZON_LINUX_2

    • Key=Environment,Value=Production

    Systems Manager リソースのタグ付けの詳細については、「Systems Manager リソースにタグを付ける」を参照してください。

  9. [ドキュメントの作成] を選択してドキュメントを保存します。

SSM ドキュメントを作成する (コマンドライン)

カスタム AWS Systems Manager (SSM) ドキュメントのコンテンツを作成した後、SSM ドキュメントコンテンツを書き込む の説明に従って AWS Command Line Interface (AWS CLI)または AWS Tools for PowerShell を使用し、コンテンツを使って SSM ドキュメントを作成できます。これを次のコマンドで示します。

開始する前に

まだ AWS CLI または AWS Tools for PowerShell をインストールして設定していない場合は、インストールして設定します。詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」および「AWS Tools for PowerShell のインストール」を参照してください。

以下のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

Linux & macOS
aws ssm create-document \ --content file://path/to/file/documentContent.json \ --name "document-name" \ --document-type "Command" \ --tags "Key=tag-key,Value=tag-value"
Windows
aws ssm create-document ^ --content file://C:\path\to\file\documentContent.json ^ --name "document-name" ^ --document-type "Command" ^ --tags "Key=tag-key,Value=tag-value"
PowerShell
$json = Get-Content -Path "C:\path\to\file\documentContent.json" | Out-String New-SSMDocument ` -Content $json ` -Name "document-name" ` -DocumentType "Command" ` -Tags "Key=tag-key,Value=tag-value"

成功すると、コマンドは以下のような応答を返します。

{
"DocumentDescription":{
  "CreatedDate":1.585061751738E9,
  "DefaultVersion":"1",
  "Description":"MyCustomDocument",
  "DocumentFormat":"JSON",
  "DocumentType":"Command",
  "DocumentVersion":"1",
  "Hash":"0d3d879b3ca072e03c12638d0255ebd004d2c65bd318f8354fcde820dEXAMPLE",
  "HashType":"Sha256",
  "LatestVersion":"1",
  "Name":"Example",
  "Owner":"111122223333",
  "Parameters":[
     --truncated--
  ],
  "PlatformTypes":[
     "Windows",
     "Linux"
  ],
  "SchemaVersion":"0.3",
  "Status":"Creating",
  "Tags": [
        {
            "Key": "Purpose",
            "Value": "Test"
        }
    ]
}
}

SSM ドキュメントを作成する (API)

カスタム AWS Systems Manager (SSM) ドキュメントのコンテンツを作成した後、SSM ドキュメントコンテンツを書き込む の説明に従って、任意の SDK を使用して AWS Systems Manager CreateDocument API オペレーションを呼び出し、コンテンツを使用して SSM ドキュメントを作成できます。通常、Content リクエストパラメータの JSON または YAML 文字列は、ファイルから読み込まれます。次のサンプル関数は、Python、Go、Java 用の SDK を使用して SSM ドキュメントを作成します。

Python
import boto3 ssm = boto3.client('ssm') filepath = '/path/to/file/documentContent.yaml' def createDocumentApiExample(): with open(filepath) as openFile: documentContent = openFile.read() createDocRequest = ssm.create_document( Content = documentContent, Name = 'createDocumentApiExample', DocumentType = 'Automation', DocumentFormat = 'YAML' ) print(createDocRequest) createDocumentApiExample()
Go
package main import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ssm" "fmt" "io/ioutil" "log" ) func main() { openFile, err := ioutil.ReadFile("/path/to/file/documentContent.yaml") if err != nil { log.Fatal(err) } documentContent := string(openFile) sesh := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable})) ssmClient := ssm.New(sesh) createDocRequest, err := ssmClient.CreateDocument(&ssm.CreateDocumentInput{ Content: &documentContent, Name: aws.String("createDocumentApiExample"), DocumentType: aws.String("Automation"), DocumentFormat: aws.String("YAML"), }) result := *createDocRequest fmt.Println(result) }
Java
import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import com.amazonaws.AmazonClientException; import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement; import com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClientBuilder; import com.amazonaws.services.simplesystemsmanagement.model.*; public class createDocumentApiExample { public static void main(String[] args) { try { createDocumentMethod(getDocumentContent()); } catch (IOException e) { e.printStackTrace(); } } public static String getDocumentContent() throws IOException { String filepath = new String("/path/to/file/documentContent.yaml"); byte[] encoded = Files.readAllBytes(Paths.get(filepath)); String documentContent = new String(encoded, StandardCharsets.UTF_8); return documentContent; } public static void createDocumentMethod (final String documentContent) { AWSSimpleSystemsManagement ssm = AWSSimpleSystemsManagementClientBuilder.defaultClient(); final CreateDocumentRequest createDocRequest = new CreateDocumentRequest() .withContent(documentContent) .withName("createDocumentApiExample") .withDocumentType("Automation") .withDocumentFormat("YAML"); final CreateDocumentResult result = ssm.createDocument(createDocRequest); } }

カスタムドキュメントのコンテンツ作成の詳細については、「データ要素とパラメータ」を参照してください。

カスタム SSM ドキュメントの削除

カスタム SSM ドキュメントを使用する必要がなくなった場合は、AWS Command Line Interface(AWS CLI) または AWS Systems Manager コンソールのいずれかを使用して削除できます。

SSM ドキュメントを削除するには (AWS CLI)
  1. ドキュメントを削除する前に、ドキュメントに関連付けられているすべてのインスタンスの関連付けを解除するようお勧めします。

    次のコマンドを実行して、ドキュメントからインスタンスの関連付け解除します。

    aws ssm delete-association --instance-id "123456789012" --name "documentName"

    コマンドが成功した場合、出力はありません。

  2. 以下のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    Linux
    aws ssm delete-document \ --name "document-name" \ --document-version "document-version" \ --version-name "version-name"
    Windows
    aws ssm delete-document ^ --name "document-name" ^ --document-version "document-version" ^ --version-name "version-name"
    PowerShell
    Delete-SSMDocument ` -Name "document-name" ` -DocumentVersion 'document-version' ` -VersionName 'version-name'

    コマンドが成功した場合、出力はありません。

    重要

    document-version または version-name が指定されていない場合は、ドキュメントのすべてのバージョンが削除されます。

SSM ドキュメント を削除するには (コンソール)
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ドキュメント] を選択します。

    -または-

    AWS Systems Manager ホームページが最初に開く場合は、メニューアイコン ( 
    The menu icon
  ) を選択してナビゲーションペインを開き、[ドキュメント] を選択します。

  3. 削除したいドキュメントを選択します。

  4. [削除] を選択します。ドキュメントを削除するように求められたら、[削除] を選択します。