> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/commander-cli/command-reference/import-and-export-commands/aws-secrets-manager-import.md).

# AWS Secrets Managerインポート

`aws-secrets-import` コマンドは、AWS Secrets Manager内のすべてのシークレットを読み取り、指定した共有フォルダにKeeperレコードとして取り込みます。各シークレット名がレコードのタイトルとなり、シークレットの値はレコード上の名前付きフィールドに解析されます。

* **エイリアス:** `amsi`
* **要件:** `boto3` — `pip install keeper-commander[aws]` でインストール

{% hint style="info" %}
**関連:** Azure Key Vault は `azure-secrets-import`、Google Cloud Secret Managerは `gcp-secrets-import` をご参照ください。3つのコマンドは、シークレット値の解析ルール、フィールドマッピング、フィルタフラグを共有しています。
{% endhint %}

***

## 認証

AWS認証情報は以下の順序で解決されます。

{% stepper %}
{% step %}

### 明示的なフラグ

コマンドラインで `--access-key` と `--secret-key` を直接指定。
{% endstep %}

{% step %}

### boto3認証情報チェーン

明示的なフラグがない場合は、標準のboto3セッションが使用され、以下の順序で確認されます。

* 環境変数 (`AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` など)
* `~/.aws/credentials` および `~/.aws/config`
* 実行中のEC2インスタンスまたはECSタスクにアタッチされたIAMロール
  {% endstep %}
  {% endstepper %}

本番環境では、認証情報フラグを省略し、インスタンスロールまたは `~/.aws` の構成に任せることが多いです。

***

## 基本的な使い方

```bash
aws-secrets-import <folder-uid> [options]
```

必須引数は**共有フォルダUID**のみです。インポート先となるKeeper共有フォルダの一意識別子です。コマンダー内で `list-sf` を実行するとフォルダのUIDを確認できます。

```bash
My Vault> list-sf
```

***

## 引数とフラグ

### 位置引数

| 引数       | 説明                                 |
| -------- | ---------------------------------- |
| `folder` | **必須。** シークレットのインポート先となる共有フォルダUID。 |

### 認証情報フラグ

| フラグ                   | 説明                                          |
| --------------------- | ------------------------------------------- |
| `--access-key KEY`    | AWSアクセスキーID。boto3認証情報チェーンより優先。              |
| `--secret-key SECRET` | AWSシークレットアクセスキー。`--access-key` 指定時は必須。      |
| `--region REGION`     | AWSリージョン名 (例: `us-east-1`)。省略時はboto3のデフォルト。 |

### 動作フラグ

| フラグ                  | 説明                                      |
| -------------------- | --------------------------------------- |
| `--record-type TYPE` | インポートするレコードのKeeperレコードタイプ。既定値は `login`。 |
| `--dry-run`          | レコードを作成せず、インポート対象のシークレットを一覧表示。          |

### フィルタフラグ

すべてのフィルタフラグは任意で、AND条件で組み合わされます。指定したすべてのフィルタを満たすシークレットのみがインポートされます。

| フラグ                                | 説明                                  |
| ---------------------------------- | ----------------------------------- |
| `--name NAME`                      | この名前と完全一致するシークレットのみインポート。           |
| `--name-starts-with PREFIX`        | 名前が `PREFIX` で始まるシークレットのみインポート。     |
| `--name-ends-with SUFFIX`          | 名前が `SUFFIX` で終わるシークレットのみインポート。     |
| `--name-contains SUBSTRING`        | 名前に `SUBSTRING` を含むシークレットのみインポート。   |
| `--tags KEY=VALUE[,KEY=VALUE,...]` | 指定したキー/値のタグを**すべて**持つシークレットのみインポート。 |

***

## シークレットのフィルタリング

フィルタを使うと、残りのシークレットに触れずに対象のサブセットだけをインポートできます。指定した各フィルタに一致する必要があります。

### 名前フィルタ

名前フィルタは、AWSに保存されているシークレット名全体に対して適用されます。

```bash
# 名前の完全一致
amsi xAbCdEfGhIjK --name prod/database/primary

# prod/ 配下のすべてのシークレット
amsi xAbCdEfGhIjK --name-starts-with prod/

# 名前が /credentials で終わるシークレット
amsi xAbCdEfGhIjK --name-ends-with /credentials

# 名前に "rds" を含むシークレット
amsi xAbCdEfGhIjK --name-contains rds
```

複数の名前フィルタを組み合わせることもできます。それぞれが追加の条件になります。

```bash
# "prod/" で始まり、かつ "database" を含む必要がある
amsi xAbCdEfGhIjK --name-starts-with prod/ --name-contains database
```

### タグフィルタ

`--tags` フラグは、カンマ区切りの `KEY=VALUE` ペアのリストを受け取ります。指定したタグを**すべて**、かつ与えた値と完全一致で持つシークレットのみが対象になります。

```bash
# 単一タグ条件
amsi xAbCdEfGhIjK --tags Env=prod

# 複数タグ条件 (両方が一致する必要がある)
amsi xAbCdEfGhIjK --tags Env=prod,Team=payments
```

タグのキーと値は大文字と小文字を区別し、AWSに保存されている値と完全一致する必要があります。Azure Key Vault でも *tags* という用語を使い、GCP Secret Manager では *labels* という用語を使いますが、`--tags` フラグの使い方は3つのプロバイダーで同じです。

### フィルタの組み合わせ

すべてのフィルタ種別を1つのコマンドで併用できます。

```bash
amsi xAbCdEfGhIjK \
  --name-starts-with prod/ \
  --name-ends-with /creds \
  --tags Env=prod,Owner=platform
```

リストした**すべて**のフィルタを満たすシークレットのみがインポートされます。

***

## シークレット値の形式

同じ解析ルールは、3つのクラウドインポートコマンド (`aws-secrets-import`、`azure-secrets-import`、`gcp-secrets-import`) で共通に使用されます。

AWS Secrets Manager からシークレットを取得すると、その `SecretString` は以下のルールに従い、優先順位の高い順に名前付きフィールド値へ解析されます。

### 1. JSONオブジェクト

シークレット文字列が `{` で始まり、オブジェクトを表す有効なJSONである場合、オブジェクト内の各キー/値ペアがKeeperレコード上の個別フィールドになります。

```json
{
  "username": "admin",
  "password": "s3cur3P@ss!",
  "host": "db.internal.example.com"
}
```

`username`、`password`、`host` の3フィールドになります。

### 2. KEY=VALUE行 (シェル形式)

シークレット文字列がJSONでない場合、改行区切りの `KEY=VALUE` ペア (`.env` ファイルと同じ形式) として解析を試みます。`#` で始まる行と空行は無視されます。

```
# Database credentials
username=admin
password=s3cur3P@ss!
host=db.internal.example.com
```

`username`、`password`、`host` の3フィールドになります。

### 3. 代替 — プレーン文字列

JSONでも `KEY=VALUE` 行でも解析できない場合、文字列全体が `value` という名前の単一フィールドに保存されます。

```
s3cur3P@ss!
```

`value = s3cur3P@ss!` の1フィールドになります。

***

## Keeperレコードの構造

インポートされた各シークレットは、対象の共有フォルダに**TypedRecord**が1件作成されます。

* **タイトル** — 元のAWSシークレット名 (例: `prod/database/primary`)
* **レコードタイプ** — `--record-type` で制御 (既定値: `login`)

### フィールドの配置

シークレットから解析したキー/値ペアは、レコードに配置する前にKeeperフィールドタイプへマッピングされます。

| 解析キー (大文字小文字を区別しない)                          | Keeperフィールドタイプ | 配置              |
| -------------------------------------------- | -------------- | --------------- |
| `username`, `user`, `login`                  | `login`        | 型付きフィールド        |
| `password`, `pass`, `secret`, `secret_value` | `password`     | 型付きフィールド        |
| `url`, `endpoint`, `host`                    | `url`          | 型付きフィールド        |
| `email`, `mail`                              | `email`        | 型付きフィールド        |
| `note`, `notes`                              | —              | レコードのNotesセクション |
| 上記以外                                         | `text`         | 型付きフィールド        |

`note` および `notes` キーは、型付きフィールドやカスタムフィールドではなく、レコードの**Notes**フィールドに書き込まれます。上記以外のキーは `text` 型付きフィールドとして保存されます。同じ意味のタイプ (`login`、`password`、`url`、`email` など) が複数ある場合、最初の出現が型付きフィールドのスロットを占め、以降は**カスタムフィールド**に保存されます。

***

## 例

### 環境のAWS認証情報ですべてのシークレットをインポート

```bash
amsi xAbCdEfGhIjK
```

`~/.aws` の認証情報、またはアタッチされたEC2/ECSインスタンスロールを自動的に使用します。

### 認証情報とリージョンを明示的に指定

```bash
amsi xAbCdEfGhIjK \
  --access-key AKIAIOSFODNN7EXAMPLE \
  --secret-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \
  --region us-west-2
```

### インポート対象のプレビュー (ドライラン)

```bash
amsi xAbCdEfGhIjK --dry-run
```

すべてのフィルタを通過するシークレット名を表示し、レコードは作成しません。

### paymentsチームが所有する本番シークレットのみインポート

```bash
amsi xAbCdEfGhIjK --name-starts-with prod/ --tags Team=payments
```

### 既知の単一シークレットをインポート

```bash
amsi xAbCdEfGhIjK --name prod/payments/stripe-api-key
```

### ステージングのRDSシークレットをすべて `serverCredentials` レコードとしてインポート

```bash
amsi xAbCdEfGhIjK \
  --name-contains rds \
  --tags Env=staging \
  --record-type serverCredentials
```

### 複雑なフィルタをコミット前にドライラン

```bash
amsi xAbCdEfGhIjK \
  --name-starts-with prod/ \
  --name-ends-with /creds \
  --tags Env=prod,Owner=platform \
  --dry-run
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/commander-cli/command-reference/import-and-export-commands/aws-secrets-manager-import.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
