AWS 認定ソリューションアーキテクト – プロフェッショナル 合格への道#24

#学習
## 11
### Amazon Redshift 管理の概要
https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/overview.html

## 12
### 一般的な問題のトラブルシューティング
https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_troubleshoot_general.html

* AWS Organizations にリクエストを送信すると､「アクセス拒否」というメッセージが表示される
    * IAMで権限付与
    * 時間などの条件付きの場合はそれを満たしているか確認する
* 一時的なセキュリティ認証情報を使用してリクエストを送信すると「アクセスが拒否されました」というメッセージが表示される
    * リクエスト形式の確認
    * 一時認証情報の有効確認
    * 権限の確認
* 組織をメンバーアカウントとして残したり、メンバーアカウントをマスターアカウントとして削除しようとすると、「アクセスが拒否されました」というメッセージが表示される
    * メンバーアカウントでの請求を IAM ユーザーアクセスで有効にした後でのみ、メンバーアカウントを削除できます。
    * アカウントがスタンドアロンアカウントとして動作するために必要な情報を持っている場合にのみ、組織からアカウントを削除できます。
* 組織にアカウントを追加しようとすると「クォータを超えました」というメッセージが表示される
    * 組織内で保持できるアカウントの数には上限があります。削除したアカウントや閉じたアカウントは、引き続きこのクォータに対してカウントされます。

参加の招待は、組織内のアカウントの上限数に対してカウントされます。招待されたアカウントが拒否された場合、マスターアカウントが招待をキャンセルした場合、または招待状の有効期限が切れた場合は、カウントが返されます。
* アカウントを追加または削除するときに「このオペレーションでは待機期間が必要です」というメッセージが表示される
    * 一部のアクションには待機時間が必要
* 組織にアカウントを追加しようとすると「組織がまだ初期化中です」というメッセージが表示される
    * 1週間以上表示されている場合にはサポートまで連絡
* 組織にアカウントを招待しようとすると、「招待は無効になっています」というメッセージが表示される。
    * これは、組織内のすべての機能を有効にする場合に発生します。このオペレーションには時間がかかり、すべてのメンバーアカウントが応答する必要があります。オペレーションが完了するまで、新しいアカウントを組織サイトに加入するよう招待することはできません。

### AWS Organizations ポリシーの管理
https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies.html

#### SCP の継承
> サービスコントロールポリシーの継承は、以下のツリーのすべての部分にアクセス許可が流れるフィルターのように動作します。組織の逆ツリー構造が、ルートからすべての OU に接続し、アカウントで終わるブランチで構成されているとします。すべての AWS アクセス許可はツリーのルートに流れます。次に、これらのアクセス許可は、ルート、OU、およびアカウントにアタッチされた SCP を通過して、リクエストを行うプリンシパル (IAM ロールまたはユーザー) に到達する必要があります。各 SCP は、その下のレベルに渡されるアクセス許可をフィルタリングできます。アクションが Deny ステートメントによってブロックされた場合、その SCP の影響を受けるすべての OU およびアカウントは、そのアクションへのアクセスを拒否されます。下位レベルの SCP は、上位レベルの SCP によってブロックされたアクセス許可を追加できません。SCP はフィルタリングのみが可能で、アクセス許可を追加することはできません。

### SCP によって制限されないタスクおよびエンティティ
* master アカウントで実行されたアクション
* サービスにリンクされたロールにアタッチされたアクセス権限を使用して実行されるすべてのアクション。
* ルート認証情報の管理
* ルートユーザーとしてのエンタープライズサポートプランへの登録
* AWSサポートプランの変更
* Amazon CloudFront キーの管理

### AWS CloudFormation ベストプラクティス
#### Mappings を使用した条件値の指定
* AWS::Region 擬似パラメーター
    * AWS CloudFormation によってスタックが作成されるリージョンとして解決される値
* Mappings オブジェクト
    * 値のセット

```
{
  "Parameters": {
    "KeyName": {
      "Description": "Name of an existing EC2 KeyPair to enable SSH access to the instance",
      "Type": "String"
    }
  },
  "Mappings": {
    "RegionMap": {
      "us-east-1": {
        "AMI": "ami-76f0061f"
      },
      "us-west-1": {
        "AMI": "ami-655a0a20"
      },
      "eu-west-1": {
        "AMI": "ami-7fd4e10b"
      },
      "ap-southeast-1": {
        "AMI": "ami-72621c20"
      },
      "ap-northeast-1": {
        "AMI": "ami-8e08a38f"
      }
    }
  },
  "Resources": {
    "Ec2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "KeyName": {
          "Ref": "KeyName"
        },
        "ImageId": {
          ## 組み込み関数
          "Fn::FindInMap": [
　　　　　　　## マッピングオブジェクト
            "RegionMap",
            {
　　　　　　　　## 擬似パラメーターで実行しているRZに変換される
　　　　　　　　## us-east-1であればAMI=ami-76f0061f
              "Ref": "AWS::Region"
            },
            "AMI"
          ]
        },
        "UserData": {
          "Fn::Base64": "80"
        }
      }
    }
  }
}
```

> { "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey"] }
> 戻り値:SecondLevelKey に割り当てられた値。