

# AWS Well-Architected Tool アイデンティティベースポリシーの例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、ユーザーおよびロールには、AWS WA Tool リソースを作成または変更するアクセス許可はありません。AWS マネジメントコンソール、AWS CLI、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行する権限をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらのアクセス許可が必要なユーザーまたはグループにそのポリシーをアタッチします。

JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、「**IAM ユーザーガイド」の「[JSON タブでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)」を参照してください。

**Topics**
+ [ポリシーのベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [AWS WA Tool コンソールを使用する](#security_iam_id-based-policy-examples-console)
+ [ユーザーが自分の許可を表示できるようにする](#security_iam_id-based-policy-examples-view-own-permissions)
+ [ワークロードへのフルアクセスの付与](#security_iam_id-based-policy-examples-full-access)
+ [ワークロードへの読み取り専用アクセスの付与](#security_iam_id-based-policy-examples-readonly-access)
+ [1 つのワークロードへのアクセス](#security_iam_id-based-policy-examples-access-one-workload)
+ [AWS Well-Architected Tool Connector for Jira のサービス固有の条件キーの使用](#security_iam_id-based-policy-examples-service-specific-condition-key)

## ポリシーのベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

ID ベースのポリシーは、ユーザーのアカウントで誰かが AWS WA Tool リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションを実行すると、AWS アカウント に料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ **AWS マネージドポリシーの使用を開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードへのアクセス許可の付与を開始するには、多くの一般的なユースケースのためにアクセス許可を付与する *AWS マネージドポリシー*を使用します。これらは AWS アカウントで使用できます。ユースケースに固有の AWS カスタマー管理ポリシーを定義して、アクセス許可を絞り込むことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能の AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、*最小特権アクセス許可*とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。また、CloudFormation などの特定の AWS のサービス を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – AWS アカウントで IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

## AWS WA Tool コンソールを使用する
<a name="security_iam_id-based-policy-examples-console"></a>

AWS Well-Architected Tool コンソールにアクセスするには、一連の最小限のアクセス許可が必要です。これらのアクセス許可により、AWS アカウント の AWS WA Tool リソースの詳細をリストおよび表示できます。最小限の必要なアクセス許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しなくなります。

これらのエンティティが AWS WA Tool コンソールを使用できるように、エンティティに次の AWS 管理ポリシーもアタッチします。

```
WellArchitectedConsoleReadOnlyAccess
```

ワークロードを作成、変更、および削除するためには、次の AWS 管理ポリシーをエンティティにアタッチします。

```
WellArchitectedConsoleFullAccess
```

詳細については、「**IAM ユーザーガイド」の「[ユーザーへのアクセス許可の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」を参照してください。

AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

## ユーザーが自分の許可を表示できるようにする
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## ワークロードへのフルアクセスの付与
<a name="security_iam_id-based-policy-examples-full-access"></a>

この例では、ユーザーにワークロードへの AWS アカウント のフルアクセスを許可します。フルアクセスにより、ユーザーは AWS WA Tool ですべてのアクションを実行できます。このアクセスは、ワークロードの定義、ワークロードの削除、ワークロードの表示、ワークロードの更新に必要です。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement" : [  
     {
     "Effect" : "Allow",
     "Action" : [
          "wellarchitected:*"
     ],
     "Resource": "*"
     }
   ]
}
```

------

## ワークロードへの読み取り専用アクセスの付与
<a name="security_iam_id-based-policy-examples-readonly-access"></a>

この例では、ユーザーにワークロードへの AWS アカウント の読み取り専用アクセスを許可します。読み取り専用アクセスでは、ユーザーは AWS WA Tool のワークロードを表示できるのみです。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement" : [  
     {
     "Effect" : "Allow",
     "Action" : [
          "wellarchitected:Get*",
          "wellarchitected:List*"
     ],
     "Resource": "*"
     }
   ]
}
```

------

## 1 つのワークロードへのアクセス
<a name="security_iam_id-based-policy-examples-access-one-workload"></a>

この例では、ユーザーに、`us-west-2` リージョン内の 1 つのワークロードである `99999999999955555555555566666666` への AWS アカウント の読み取り専用アクセス許可を付与します。お客様の アカウント ID は です`777788889999`

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement" : [  
     {
     "Effect" : "Allow",
     "Action" : [
          "wellarchitected:Get*",
          "wellarchitected:List*"
     ],
     "Resource": "arn:aws:wellarchitected:us-west-2:777788889999:workload/999999999999555555555555666666666"
     }
   ]
}
```

------

## AWS Well-Architected Tool Connector for Jira のサービス固有の条件キーの使用
<a name="security_iam_id-based-policy-examples-service-specific-condition-key"></a>

 この例では、サービス固有の条件キー `wellarchitected:JiraProjectKey` を使用して、アカウント内のワークロードにリンクできる Jira プロジェクトを制御する方法を示します。

 ここでは、条件キーが次のように使用されます。
+  **`CreateWorkload:`** `wellarchitected:JiraProjectKey` を `CreateWorkload` に適用すると、ユーザーが作成したワークロードにリンクできるカスタム Jira プロジェクトを定義できます。例えば、ユーザーがプロジェクト ABC で新しいワークロードを作成しようとしても、ポリシーでプロジェクト PQR のみが指定されていると、アクションは拒否されます。
+  **`UpdateWorkload:`** `wellarchitected:JiraProjectKey` を `UpdateWorkload` に適用すると、この特定のワークロードまたは任意のワークロードにリンクできるカスタム Jira プロジェクトを定義できます。例えば、ユーザーがプロジェクト ABC で既存のワークロードを更新しようとしても、ポリシーでプロジェクト PQR が指定されていると、アクションは拒否されます。さらに、プロジェクト PQR にリンクされたワークロードがあり、そのワークロードを更新してプロジェクト ABC にリンクしようとした場合も、アクションは拒否されます。
+  **`UpdateGlobalSettings:`** `wellarchitected:JiraProjectKey` を `UpdateGlobalSettings` に適用すると、AWS アカウントにリンクできるカスタム Jira プロジェクトを定義できます。アカウントレベルの設定は、アカウント内の、アカウントレベルの Jira 設定を上書きしないワークロードを保護します。例えば、ユーザーが `UpdateGlobalSettings` にアクセスした場合、ポリシーで指定されていないプロジェクトにアカウント内のワークロードをリンクすることはできません。

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "VisualEditor0",
			"Effect": "Allow",
			"Action": [
				"wellarchitected:UpdateGlobalSettings",
				"wellarchitected:CreateWorkload"
			],
			"Resource": "*",
			"Condition": {
				"StringEqualsIfExists": {
					"wellarchitected:JiraProjectKey": ["ABC, PQR"]
				}
			}
		},
		{
			"Sid": "VisualEditor1",
			"Effect": "Allow",
			"Action": [
				"wellarchitected:UpdateWorkload"
			],
			"Resource": "arn:aws:wellarchitected:us-east-1:111122223333:workload/example-workload",
			"Condition": {
				"StringEqualsIfExists": {
					"wellarchitected:JiraProjectKey": ["ABC, PQR"]
				}
			}
		}
	]
}
```

------