

# イベントソースとアクセス許可ポリシーでの Lambda エイリアスの使用
<a name="using-aliases"></a>

各エイリアスには一意の ARN があります。エイリアスは関数のバージョンのみを参照でき、別のエイリアスを参照することはできません。関数の新しいバージョンを指すよう、エイリアスを更新できます。

Amazon Simple Storage Service (Amazon S3) などのイベントソースが、Lambda 関数を呼び出します。これらのイベントソースは、イベント発生時に呼び出す関数を識別するマッピングを維持します。マッピング設定で Lambda 関数のエイリアスを指定する場合、関数のバージョンが変更されたときにマッピングを更新する必要はありません。詳細については、「[Lambda がストリームおよびキューベースのイベントソースからのレコードを処理する方法](invocation-eventsourcemapping.md)」を参照してください。

リソースポリシーでは、Lambda 関数を使用するためのイベントソースにアクセス許可を付与できます。ポリシーでエイリアス ARN を指定した場合、関数のバージョンが変更されたときにポリシーを更新する必要はありません。

## リソースポリシー
<a name="versioning-permissions-alias"></a>

[リソースベースのポリシー](access-control-resource-based.md)を使用して、サービス、リソース、またはアカウントに、関数に対するアクセス許可を付与できます。このアクセス許可の範囲は、ポリシーの適用先がエイリアス、バージョン、または関数全体のいずれになるかによって決まります。たとえば、エイリアス名 (`helloworld:PROD` など) を使用する場合は、アクセス許可で、エイリアス ARN (`helloworld`) を使用した `helloworld:PROD` 関数の呼び出しを許可できます。

エイリアスまたは特定のバージョンを使用しないで関数を呼び出そうとすると、アクセス許可エラーが発生します。このアクセス許可エラーは、エイリアスに関連付けられた関数のバージョンを直接呼び出そうとしても発生します。

例えば、以下の AWS CLI コマンドは、Amazon S3 が `amzn-s3-demo-bucket` に代わって動作しているときに、`helloworld` 関数の PROD エイリアスを呼び出すアクセス許可を Amazon S3 に付与します。

```
aws lambda add-permission \
  --function-name helloworld \
  --qualifier PROD \
  --statement-id 1 \
  --principal s3.amazonaws.com \
  --action lambda:InvokeFunction \
  --source-arn arn:aws:s3:::amzn-s3-demo-bucket \
  --source-account 123456789012
```

ポリシーでのリソース名の使用の詳細については、「[ポリシーのリソースセクションと条件セクションの微調整](lambda-api-permissions-ref.md)」を参照してください。